Здравствуйте Аноним, Вы писали:
А>Здравствуйте 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 эта проблема решена.
Это все хорошо и уверен когда-нибудь пригодится.
Но данной проблемы не решает...
Во-первых у меня ВТЛ 7.0
Во- вторых не работает только с этим контролом.
Первый АВ вылазит в ATLHOST.H : ReleaseALL()
...
m_spOleObject->Close(OLECLOSE_NOSAVE);
....
Дальше еще несколько...