Модераторы: feodorv, GremlinProg, xvr, Fixin

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> WinAPI, заливка замкнутых фигур, граф с цветными вершинами 
V
    Опции темы
KasMP
Дата 5.7.2009, 21:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Завсегдатай
Сообщений: 586
Регистрация: 8.8.2006

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



Forsaken, сообщение действительно достаточно полное smile (для тех, кто хотя бы немного знаком с некоторыми словами, которые там встречаются).

Давайте я тогда задам конкретные вопросы, которые совсем не знаю smile :
  • "определить в ран-тайме" - это жаргон? что это значит? можно как-то еще определять? что это меняет?
  • про VisualStyles я тоже ничего не знаю... но с этим несложно разобраться самой smile ;
  • "выбранная конфигурация (в расширении VS)" - причем тут конфигурация? причем тут среда? а если писать, например, в DevC++, то будет по-другому? что к чему вообще? 
  • если я хочу проверить, удалились из памяти объекты или нет, то как это можно сделать? как можно наглядно продемонстрировать все это?
    (неужели нужно много-много раз запускать одну и ту же программу, чтобы неудаленные объекты скушали ощутимое количество памяти? ведь нас интересуют именно предопределенные объекты, а они все в одном экземпляре в каждой программе...)

PM MAIL   Вверх
Forsaken
Дата 5.7.2009, 22:12 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 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
PM MAIL   Вверх
KasMP
Дата 6.7.2009, 21:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Завсегдатай
Сообщений: 586
Регистрация: 8.8.2006

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



Цитата(Forsaken @  5.7.2009,  22:12 Найти цитируемый пост)
1. run-time -Это значит во время выполнения программы

Я так и подозревала smile .
Цитата(Forsaken @  5.7.2009,  22:12 Найти цитируемый пост)
2. VisualStyles -визуальные стили оформления, темы (например можно скачать тему для XP так что она будет выглядеть как Vista)
3. VS под этим сокращением подразумевалось VisualStyles

user posted image user posted image smile smile
Как все просто оказалось smile .
Цитата(Forsaken @  5.7.2009,  22:12 Найти цитируемый пост)
4. В случае о котором говорилось подойдет ProcessExplorer там можно увидеть хэндлы GDI (и обнаружить утечки -хэндлы будут увеличиваться со временем)
-к примеру: выбираете там нужный процесс, щелкаете прав. кн. мышки и щелкаете Properties и на закладке Perfomance увидите их кол.во

Благодарю smile , поразбираемся smile .
Цитата(Forsaken @  5.7.2009,  22:12 Найти цитируемый пост)
Суть проблеммы в том что GetStockObject в случае использования визуальных стилей может возвратить объект который нужно удалить (потому что он не есть "Stock" -"предопределенный" по русски)

Я тоже так поняла smile .
Цитата(Forsaken @  5.7.2009,  22:12 Найти цитируемый пост)
Вот как это я понял. Я сам два месяца программирую на C++ под Win32 API, так что прошу прощения если я сам что-то не так понял.

Надеюсь, GremlinProg еще заглянет на наш огонек и разъяснит все точно smile .
PM MAIL   Вверх
Earnest
Дата 7.7.2009, 07:47 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

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



Forsaken все правильно сказал. Только при проверки GDI-рескрсов с помощью эксплорера нужно учитывать некоторые тонкости. Скажем, чсло хандлов после открытия, скажем, какого-то окна программы, возрастает. Казалось, было бы логично ожидать, что после закрытия этого окна, число хандлов уменьшится до предыдущего уровня (если все правильно). Но увы, это не так. Есть некоторое число хандлов, которое раз выделившись, не исчезает - это все, что загружено из ресурсов. Поэтому, стабильное число открытых хандлов вы получите только после закрытия окна. Вот оно-то и не должно дальше возрастать... В общем, это довольно геморройная тема. Нужно усвоить несколько правил: 1) Все перья, кисти, шрифты, курсоры и т.д., которые вы сами создаете, вы же должны и хранить, а потом удалять (т.е. нельзя создать, отдать контексту и забыть). 2) Перед удалением нужно убедиться что перо (кисть, etc) никуда не выбрано - выбранные в контекст ресурсы на самом деле не удаляются и дают утечки.  3) Полезно пользоваться функциями SaveDC\RestoreDC как альтернативой сохранению старых перьев и прочих замененных ресурсов. В общем, все не так сложно, но достаточно рутинно.


--------------------
...
PM   Вверх
KasMP
Дата 8.7.2009, 14:00 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Завсегдатай
Сообщений: 586
Регистрация: 8.8.2006

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



Earnest, спасибо за ценные конкретные советы (если раньше я так делала и сомневалась, то теперь буду продолжать так делать и буду уверена smile ).
Попробую еще сама последить за числом и номерами хэндлов smile . Посмотрим, что получится smile ...
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »


 




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


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

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