Я написал приложение, в котором иногда нахожу ошибки EOutofResources, возникающие при использовании метода GDIError графического модуля при сохранении TBitmap32 в поток.
Насколько я знаю, это может происходить из-за ограничений gdi или ограничений кучи. Я знаю, что для процесса существует ограничение по умолчанию в 10000 дескрипторов. Так что мое приложение по диспетчеру задач сообщает только 620.
Я загрузил и запустил инструмент Desktop Heap Information Monitor Tool, который сообщил следующее:
Desktop Heap Information Monitor Tool (Version 8.1.2925.0)
Copyright (c) Microsoft Corporation. All rights reserved.
-------------------------------------------------------------
Session ID: 0 Total Desktop: ( 7360 KB - 11 desktops)
WinStation\Desktop Heap Size(KB) Used Rate(%)
-------------------------------------------------------------
WinSta0\Default 3072 44.5
WinSta0\Disconnect 64 4.5
WinSta0\Winlogon 128 10.2
Service-0x0-3e7$\Default 512 29.1
Service-0x0-3e4$\Default 512 6.8
Service-0x0-3e5$\Default 512 6.8
SAWinSta\SADesktop 512 0.5
__X78B95_89_IW\__A8D9S1_42_ID 512 0.5
Service-0x0-1ae39$\Default 512 2.4
Service-0x0-12d284a7$\Default 512 2.5
Service-0x0-1312b6d4$\Default 512 15.0
-------------------------------------------------------------
Как и выше, я использовал только 44% кучи рабочего стола в winsta0.
К тому же эта ошибка возникает время от времени. он никогда не достигает указанных пределов. Как я могу узнать, в чем проблема? Что вызывает появление этой ошибки?
Спасибо