Как получить объекты GDI, связанные с процессом - PullRequest
10 голосов
/ 30 октября 2008

Я исследую проблему утечек GDI в одном из наших приложений для интеллектуальных клиентов. Я ищу инструмент (например, tasklist ) для получения объектов GDI, связанных с процессом. Я могу видеть объекты GDI в TaskManager, но мое требование периодически фиксировать его где-то. Например, в текстовом файле.

Ответы [ 3 ]

5 голосов
/ 30 декабря 2008

Абсолютно бесплатный Process Explorer (http://www.sysinternals.com) позволяет графически проверить этот и множество других аспектов, связанных с запущенными процессами. Добавьте «Объекты GDI» в отображаемые столбцы, и все готово.

ПРИМЕЧАНИЕ: Microsoft приобрела их инструменты, и я считаю, что Марк Руссинович теперь работает на Microsoft. Инструменты Sysinternals обычно не требуют какой-либо установки, кроме как скопировать их в удобное для вас место, и они должны быть в вашем наборе инструментов, если они еще не установлены.

5 голосов
/ 30 октября 2008

Должно быть довольно просто написать программу для периодического журналирования количества дескрипторов GDI, используемых процессом, с использованием функции API GetGuiResources .

3 голосов
/ 10 марта 2010

Используйте GDIView , бесплатный инструмент от NirSoft.

Их описание:

GDIView - это уникальный инструмент, который отображает список дескрипторов GDI (кистей, перьев, шрифтов, растровых изображений и других), открытых каждым процессом. Он отображает общее количество для каждого типа дескриптора GDI, а также подробную информацию о каждом дескрипторе. Этот инструмент может быть полезен для разработчиков, которым необходимо отслеживать утечку ресурсов GDI в своем программном обеспечении.

Вы можете сохранить список счетчиков GDI как обычные текстовые файлы, разделенные табуляцией, запятыми и в виде таблиц, а также горизонтальный или вертикальный файл HTML или файл XML.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...