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

А>Здравствуйте 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);
....
Дальше еще несколько...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.