运行几个小时后,我的应用程序无法创建新的字体对象:
CreateFontIndirect()返回NULL。
我知道如何查找内存泄漏(即使用并行检查器或其他分析器 - 其中大多数包括泄漏检测)。但是如何在Win32中找到资源泄漏?
答案 0 :(得分:7)
抓住自己GDI View的副本 - 这个有用的工具可以显示你的应用程序使用的所有GDI对象,包括字体名称,大小等的详细信息。这在过去证明非常方便。
对于Win32应用程序,您可能需要查看WTL框架 - 这将使用轻量级C ++类包装GDI对象,这些类将为您处理对象删除。
答案 1 :(得分:5)
看起来MSDN文章 Resource Leaks: Detecting, Locating, and Repairing Your Leaky GDI Code (via archive.org)可能会为您提供答案。
答案 2 :(得分:2)
如果你有BoundsChecker,除了内存泄漏之外,它还会跟踪资源泄漏。