gpt4 book ai didi

Delphi EOutOfResources(GDI错误)

转载 作者:行者123 更新时间:2023-12-03 15:53:14 25 4
gpt4 key购买 nike

我编写了一个应用程序,其中偶尔会出现 EOutofResources 错误将 TBitmap32 保存到流时由 Graphics 单元的 GD​​IError 方法引发。

据我所知,它可能来自 gdi 限制或堆限制。我知道该进程的默认限制为 10000 个句柄。所以我的应用程序根据任务管理器报告只有 620。

我已下载并运行桌面堆信息监控工具,该工具报告了以下内容:

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
-------------------------------------------------------------

如上所述,我在 winsta0 中只使用了 44% 的桌面堆。

此外,此错误有时会出现。它永远不会达到提到的限制。我怎样才能检查问题出在哪里?是什么原因导致出现此错误?

谢谢

最佳答案

您可能存在资源和/或内存泄漏。

查找内存泄漏
如果您使用 FastMM 的调试版本,它会在程序关闭时向您显示内存泄漏报告。

以下文章应该可以帮助您:
http://wiert.wordpress.com/2009/07/29/delphi-fastmm-using-fastmm4-for-debugging-your-memory-allocations-part-1-introduction/

查找资源泄漏
请注意,FastMM 虽然是查找内存泄漏的重要工具,但却无法发现资源泄漏。
AQTime 可以找到这些,并且有 30 天的试用期。请访问:
http://smartbear.com/products/development-tools/performance-profiling/

如果你想要一个开源资源泄漏工具,请尝试:http://www.kbasm.com/denomo.html

狩猎顺利。

关于Delphi EOutOfResources(GDI错误),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6045939/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com