GDI句柄类型

时间:2011-07-25 08:00:22

标签: winapi gdi memory-leaks

我目前正在尝试追踪GDI句柄泄漏。我目前正在使用GDIView来追踪它。该工具将GDI对象划分为类别Pen,ExtPen,Bitmap,Font,Palette,Region,DC,Metafile DC,Enhanced Metafile DC和其他GDI。这些类别在名为GDI Total的列中汇总。在其中,有一个名为All GDI的列。在这一栏中,我正在检测泄漏。

由于我没有该工具的源代码,我无法看到真正发生的事情。该工具的作者是否错过了句柄类型?它看起来像。我知道泄漏,因为有些用户报告他们显示臭名昭着的对话框所需的资源是(文本结束)。对话框可能需要数周才能显示,所以我很确定它不是DC。

如何追踪这一点的任何想法将非常感谢!由于我的预算有限,千万美元的工具是不可能的。调试挂钩到GDI就足够了,因为我不介意做侦探工作。

2 个答案:

答案 0 :(得分:2)

我发现了问题。显然,GDIView认为图标属于未知类别。问题是加载并附加到对象的图标。该对象未设置为在销毁时自动删除图标。通过电子邮件发送该工具的作者......

答案 1 :(得分:0)

一旦我遇到了类似的问题并且我使用了任务管理器 - 要求它显示每个进程的GDI句柄计数并逐步执行程序代码以查看句柄计数意外增加的位置并且无法减少。花了一些时间,但最后使用分而治之,我发现了错误。