Codejock Forums Homepage
Forum Home Forum Home > Codejock Products > Visual C++ MFC > Property Grid
  New Posts New Posts RSS Feed - Crash on PropertyGrid delete
  FAQ FAQ  Forum Search   Events   Register Register  Login Login

Crash on PropertyGrid delete

 Post Reply Post Reply
Author
Message Reverse Sort Order
Oleg View Drop Down
Admin Group
Admin Group


Joined: 21 May 2003
Location: United States
Status: Offline
Points: 11234
Post Options Post Options   Thanks (0) Thanks(0)   Quote Oleg Quote  Post ReplyReply Direct Link To This Post Topic: Crash on PropertyGrid delete
    Posted: 06 June 2006 at 2:48pm

Не вижу проблем... Попробуйте. :)

Oleg, Support Team
CODEJOCK SOFTWARE SOLUTIONS
Back to Top
Kisly View Drop Down
Newbie
Newbie


Joined: 19 May 2006
Location: Russian Federation
Status: Offline
Points: 8
Post Options Post Options   Thanks (0) Thanks(0)   Quote Kisly Quote  Post ReplyReply Direct Link To This Post Posted: 06 June 2006 at 8:53am
Originally posted by oleg oleg wrote:

1. Странно. Может есть возможность послать нам проект, что б мы его потестировали?


Проблема решилась. Наша dll была скомпилирована с выравниванием по одному байту, а сам тулкит по 8. Тогда другой вопрос: если перекомпилировать сам тулкит с выравниванием по одному байту не вызовет ли это каких-либо проблем?
Back to Top
Oleg View Drop Down
Admin Group
Admin Group


Joined: 21 May 2003
Location: United States
Status: Offline
Points: 11234
Post Options Post Options   Thanks (0) Thanks(0)   Quote Oleg Quote  Post ReplyReply Direct Link To This Post Posted: 06 June 2006 at 8:29am

Здравствуйте,

1. Странно. Может есть возможность послать нам проект, что б мы его потестировали?

2. Это просто небольшая защита от постороннего скачивания.... Если счетчик обнуляется, напишите письмо на sales@codejock.com , вам его восстановят.

Oleg, Support Team
CODEJOCK SOFTWARE SOLUTIONS
Back to Top
Kisly View Drop Down
Newbie
Newbie


Joined: 19 May 2006
Location: Russian Federation
Status: Offline
Points: 8
Post Options Post Options   Thanks (0) Thanks(0)   Quote Kisly Quote  Post ReplyReply Direct Link To This Post Posted: 06 June 2006 at 3:38am
Добавка m_pView->DestroyWindow() в деструктор унаследованного класса не помогает. Может есть какие-то особенности, когда компонент находится внутри dll?

Насчет новой версии: мы можем скачать toolkit только 4 раза (1 уже израсходован). Чем вызвано такое непонятное ограничение? Новые версии выходят достаточно часто, и получается, что мы не можем скачивать их все?
Back to Top
Kisly View Drop Down
Newbie
Newbie


Joined: 19 May 2006
Location: Russian Federation
Status: Offline
Points: 8
Post Options Post Options   Thanks (0) Thanks(0)   Quote Kisly Quote  Post ReplyReply Direct Link To This Post Posted: 19 May 2006 at 10:02am

Здравствуйте!

Спасибо за оперативный ответ. Будем пробовать.

Back to Top
Oleg View Drop Down
Admin Group
Admin Group


Joined: 21 May 2003
Location: United States
Status: Offline
Points: 11234
Post Options Post Options   Thanks (0) Thanks(0)   Quote Oleg Quote  Post ReplyReply Direct Link To This Post Posted: 19 May 2006 at 9:55am

День добрый.

Нужно не заменить, а добавить перед delete... А лучше, конечно, поменять на 10.1.

Просто создайте класс наследованный от CXTPPropertyGrid и в деструкторе добавьте m_pView->DestroyWindow(); 

Должно помочь.

Oleg, Support Team
CODEJOCK SOFTWARE SOLUTIONS
Back to Top
Kisly View Drop Down
Newbie
Newbie


Joined: 19 May 2006
Location: Russian Federation
Status: Offline
Points: 8
Post Options Post Options   Thanks (0) Thanks(0)   Quote Kisly Quote  Post ReplyReply Direct Link To This Post Posted: 19 May 2006 at 8:09am

У нас те же косяки, только не в унаследованном Property Grid, а в dll, в которой есть модальный диалог с Property Grid'ом. В Debug-ной версии (мы купили 9.81). Падает при закрытии диалога. В exeшнике тот же диалог не падает.

Письмо написали.

Замена delete на DestroyWindow(); в прЫнцыпе помогает, но это же не наш метод. К тому же, достаточно ли этого? Вот и возникает извечный русский вопрос: что делать?

То есть, надо ли качать новую версию библиотеки и переставлять или как вообще этот баг поправить?

С уважением, Олег Пресняков, Рязань

Back to Top
Oleg View Drop Down
Admin Group
Admin Group


Joined: 21 May 2003
Location: United States
Status: Offline
Points: 11234
Post Options Post Options   Thanks (0) Thanks(0)   Quote Oleg Quote  Post ReplyReply Direct Link To This Post Posted: 12 May 2006 at 6:53pm

Yes, it was already fixed...

Add

m_pView->DestroyWindow();
in destructor of  inherited class

Oleg, Support Team
CODEJOCK SOFTWARE SOLUTIONS
Back to Top
Paolo View Drop Down
Newbie
Newbie


Joined: 02 March 2006
Status: Offline
Points: 9
Post Options Post Options   Thanks (0) Thanks(0)   Quote Paolo Quote  Post ReplyReply Direct Link To This Post Posted: 12 May 2006 at 4:58am
Hello everyone!

I created a PropertyGrid derived class with empty destructor.
When I delete an instance of this class,
CXTPPropertyGrid::~CXTPPropertyGrid()

is called: first instruction in this method is
delete m_pPaintManager;
which executes
CMDTARGET_RELEASE(m_pMetrics);
. This instruction substantially destroys m_pMetrics and resets it to NULL.
CXTPPropertyGrid::~CXTPPropertyGrid()
then goes on with:
if (m_pView) {
  delete m_pView;
}

that executes
CXTPPropertyGridView::ResetContent()
that contains the instruction
CFont* pFont =  &GetPaintManager()->GetItemMetrics()->m_fontNormal ;

PaintManager is still a valid object, but m_pMetrics in it is no more valid thus is not correct to access it to get
m_fontNormal


for this reason
pFont
is not assigned correctly and when
CXTPPropertyGridView::ResetContent()
executes the successive instruction
SetFont(pFont, FALSE);
makes the application to crash.

This is what I've been able to trace about my Application crash.
Now the question: am I someway wrong in deleting PropertyGrid or is this a bug that has been solved in latest release (I'm actually using 9.81 ToolkitPro).

Thanks for any help
Paolo
Back to Top
 Post Reply Post Reply
  Share Topic   

Forum Jump Forum Permissions View Drop Down

Forum Software by Web Wiz Forums® version 12.04
Copyright ©2001-2021 Web Wiz Ltd.

This page was generated in 0.113 seconds.