![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| ksili |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2069 Регистрация: 3.11.2005 Где: Красноярск Репутация: 1 Всего: 17 |
Ищу утечки в чужом приложении (MS VS 2008 SP1).
Суть работы приложения такова: оно ставит хук на все сообщения. Ловит все появляющиеся диалоги, сабклассит их, и при помощи сабклассинга дорисовывает на них кнопку. Я заметил, что конструктор класса этой кнопки трассируется столько раз, сколько было поймано таких диалогов (т.е. если таких окон было 10, то и бряк в конструкторе сработает 10 раз), а деструктор вообще не трассируется. Человек, который делал программу, сказал мне что это нормально. Конструктор выполняется в контексте основного процесса, т.е. того, который запустила студия. А деструктор выполняется в контексте хукнутого процесса. Так что утечки нет. Но меня что-то гложут сомнения. Прав ли тот программист? Или неправ? Или могут быть варианты? -------------------- Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с) |
|||
|
||||
| xvr |
|
||||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 60 Всего: 223 |
Ой!
|
||||||
|
|||||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 53 Всего: 183 |
А кнопка-то динамически создается, как объект? Или просто hWnd = CreateWindow(...)? Хотя, раз ты написал про конструктор...
Очевидно, что хукнутое приложение деструктор вызывать не будет, т.к. ничего про данный код не знает. При разрушении диалога просто вызовется DestroyWindow. А что мешает сабклассить диалог так, чтобы при закрытии он кнопку таки разрушал? -------------------- ... |
|||
|
||||
| ksili |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2069 Регистрация: 3.11.2005 Где: Красноярск Репутация: 1 Всего: 17 |
Всем спасибо, вы подтвердили мои опасения.
Будем доделывать сабклассинг -------------------- Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с) |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |