Re: Проблема
От: Аноним  
Дата: 28.05.02 00:48
Оценка:
Здравствуйте Andy, Вы писали:

A>Есть ActiveX контрол (чужой).

A>Создаю WTL-визардом Dialog-based приложение, вставляю контрол на главный диалог, запускаю — работает. Закрываю — получаю Access violation. То же самое, но с использованием MFC — работает без проблем. Судя по-всему контрол таки глючной, но работать с ним можно.

A>Есть идеи ?


Если это все под WTL3.1, то в WinMain нужно строки

CMainDlg dlgMain;
int ret = dlgMain.DoModal();

изменить следующим образом:

int ret;
{
CMainDlg dlgMain;
ret = dlgMain.DoModal();
}

т.е. ограничить область видимости объекта dlgMain, чтобы он уничтожался до _Module.Terminate(). Дело в том, что _Module.Terminate() уничтожает хип приложения, и все объекты, созданные не на стеке будут выброшены, а ссылки на них останутся в объектах, созданных на стеке.
В WTL7.0 эта проблема решена.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.