Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с CWindowImpl (WTL), crash в WindowProc 
:(
    Опции темы
GSasha
Дата 28.1.2009, 22:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 77
Регистрация: 23.3.2008
Где: Ukraine

Репутация: нет
Всего: нет



Уже второй день не могу решить проблему с окнами в WTL с, а конкретнее с CWindowIml классом. 
В общем, некое множество COM-компонентов с разными отношениями между собой, кое-какие из классов компонентов наследуют CWindowIml для возможности работы с окнами и т д... работают под IExplore. Все хорошо до тех пор, пока не начинается деинициализация и удаление объектов при закрытии окна IExplore. 
Точнее, в некоторый момент при любой попытке манипулировать с WTL-окнами(SendMessage... DestroyWindow и т д...) происходит обращение по "кривому" указателю, а именно в методе:
Код

template <class TBase, class TWinTraits>
LRESULT CALLBACK CWindowImplBaseT< TBase, TWinTraits >::WindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
   CWindowImplBaseT< TBase, TWinTraits >* pThis = (CWindowImplBaseT< TBase, TWinTraits >*)hWnd;
   ...
}

где hWnd - это не тот привычный хендл окна, а подмененный адрес объекта.
И вот где-то чего-то валится и приходит кривой адрес, что приводит к крэшу приложения и Access Violation при дальнейшем обращении по pThis.

Подскажите, плиз, куда рыть. smile 
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




[ Время генерации скрипта: 0.0472 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.