可以从任务管理器或Process Explorer中看到GDI对象的泄漏。(虽然您看不到泄漏,但可以看到对象使用计数是否持续增加。)
还有一些工具可以按类型查看GDI对象,例如GDIView [a]、DeLeaker、DPUS或GDIDebug(源代码)。
[a]请注意,我认为GDIView是一个很好的工具,可以识别和确认GDI泄漏的存在,但它无法帮助您在大型应用程序中找到泄漏代码。(我也要指出这个工具运行得非常好,并且表现良好,尽管它的主页有点奇怪(-:)
还有一个名为leaktrap的WinDBG插件,它使用MS的Detours库。
我还知道(并使用过)AQTime的资源分析器,可以检测应用程序中的GDI(和其他)资源泄漏,并提供泄漏调用的堆栈跟踪。
现在,我的实际问题是: 在VC++调试器中是否可能检测出泄漏的GDI对象? 这样就不需要单独的工具,可以在正常调试过程中捕获GDI泄漏,而不必单独检查。