Здравствуйте 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 эта проблема решена.