![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| KasMP |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 586 Регистрация: 8.8.2006 Репутация: нет Всего: 30 |
Forsaken, сообщение действительно достаточно полное
Давайте я тогда задам конкретные вопросы, которые совсем не знаю
|
|||
|
||||
| Forsaken |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 193 Регистрация: 30.12.2008 Репутация: нет Всего: 3 |
1. run-time -Это значит во время выполнения программы
2. VisualStyles -визуальные стили оформления, темы (например можно скачать тему для XP так что она будет выглядеть как Vista) 3. VS под этим сокращением подразумевалось VisualStyles 4. В случае о котором говорилось подойдет ProcessExplorer там можно увидеть хэндлы GDI (и обнаружить утечки -хэндлы будут увеличиваться со временем) -к примеру: выбираете там нужный процесс, щелкаете прав. кн. мышки и щелкаете Properties и на закладке Perfomance увидите их кол.во Суть проблеммы в том что GetStockObject в случае использования визуальных стилей может возвратить объект который нужно удалить (потому что он не есть "Stock" -"предопределенный" по русски) Вот как это я понял. Я сам два месяца программирую на C++ под Win32 API, так что прошу прощения если я сам что-то не так понял. Это сообщение отредактировал(а) Forsaken - 5.7.2009, 22:30 |
|||
|
||||
| KasMP |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 586 Регистрация: 8.8.2006 Репутация: нет Всего: 30 |
Я так и подозревала Как все просто оказалось Благодарю Я тоже так поняла
Надеюсь, GremlinProg еще заглянет на наш огонек и разъяснит все точно |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 33 Всего: 183 |
Forsaken все правильно сказал. Только при проверки GDI-рескрсов с помощью эксплорера нужно учитывать некоторые тонкости. Скажем, чсло хандлов после открытия, скажем, какого-то окна программы, возрастает. Казалось, было бы логично ожидать, что после закрытия этого окна, число хандлов уменьшится до предыдущего уровня (если все правильно). Но увы, это не так. Есть некоторое число хандлов, которое раз выделившись, не исчезает - это все, что загружено из ресурсов. Поэтому, стабильное число открытых хандлов вы получите только после закрытия окна. Вот оно-то и не должно дальше возрастать... В общем, это довольно геморройная тема. Нужно усвоить несколько правил: 1) Все перья, кисти, шрифты, курсоры и т.д., которые вы сами создаете, вы же должны и хранить, а потом удалять (т.е. нельзя создать, отдать контексту и забыть). 2) Перед удалением нужно убедиться что перо (кисть, etc) никуда не выбрано - выбранные в контекст ресурсы на самом деле не удаляются и дают утечки. 3) Полезно пользоваться функциями SaveDC\RestoreDC как альтернативой сохранению старых перьев и прочих замененных ресурсов. В общем, все не так сложно, но достаточно рутинно.
-------------------- ... |
|||
|
||||
| KasMP |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 586 Регистрация: 8.8.2006 Репутация: нет Всего: 30 |
Earnest, спасибо за ценные конкретные советы (если раньше я так делала и сомневалась, то теперь буду продолжать так делать и буду уверена
Попробую еще сама последить за числом и номерами хэндлов |
|||
|
||||
![]()
|
| Правила форума "C/C++: Системное программирование и WinAPI" | |
|
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |