CTOCIO IT专家网

天极传媒 比特网 | 天极网 | IT专家网 | IT商网 | 52PK游戏网 | 手机天极 | IT分众 |
IT专家网搜索

您现在的位置: IT专家网 > WinSystem子站 > 技巧

XP两种工具在代码中检测并堵塞 GDI 泄漏

作者: Christophe Nasarre ,  出处:微软, 责任编辑: 韩博颖, 
2008-05-20 13:13
  Windows 需要一种不太相同的 GDI 泄漏方法,他构建并说明了两种工具,这两种工具旨在检测并消除在 Windows XP、Windows 2000 和 Windows NT 上运行的应用程序中的 GDI 泄漏。

  摘要

  在以前的一篇文章中,作者设计了一种简单的方法来检测图形设备接口 (GDI) 对象,这些对象并未由 Windows 9x 平台上基于 Win32 的应用程序正确地进行发布。因为有些更新版本的 Windows 需要一种不太相同的 GDI 泄漏方法,作者已经更新了针对那些操作系统的方法。他构建并说明了两种工具,这两种工具旨在检测并消除在 Windows XPWindows 2000Windows NT 上运行的应用程序中的 GDI 泄漏。

  在 Windows 95Windows 98Windows Me 中,图形设备接口 (GDI) 句柄是一个 16 位的值,任何应用程序都可以使用它来调用 GDI API 的函数。在 2001 年 3 月一期的 MSDN® Magazine 中,我讲述了如何利用这些平台的 16 位特性来构建 GDIUsage,这是一种所有应用程序都可使用的列出、比较并显示 GDI 对象的工具(参见“Resource Leaks:Detecting, Locating, and Repairing Your Leaky GDI Code”)。本文将说明如何编写用于 Windows XP 的同种类型的工具。我这里将要使用的方法同样很好地适用于 Windows 2000 和 Windows NT® 4.0,但出于本文的目的,我将使用 Windows XP 来表示所有这三种平台。

  Windows 2000 中 GDI 的使用

  图 1 Windows 2000 中 GDI 的使用

  本文说明了 Windows 9x 和 Windows XP 平台的不同,提出了在工具的实现过程中产生问题的解决方案,您可以在图 1 中看到该工具。我将解释如何利用代码插入机制来确定某个进程的 GDI 资源消耗情况,以及如何修补进程或 DLL,使其在创建 GDI 对象时得到通知。接下来,我将说明如何编写 Win32® 调试器来驱动某一进程,如何让该进程和调试器彼此之间进行通信,以及如何实现调用堆栈管理器来提供有关 GDI 对象资源分配的额外信息。

共10页。 1 2 3 4 5 6 :

网友评论

笔名 
请您注意:遵守国家有关法律、法规,尊重网上道德,承担一切因您的行为而直接或间接引起的法律责任。    IT专家网友拥有管理笔名和留言的一切权利。

邮件订阅

  • 周排行榜
  • 月排行榜
天极服务 | 关于我们 | 网站律师 | 加入我们 | 联系我们 | 广告业务 | 友情链接 | 我要挑错
All Rights Reserved, Copyright 2004-2007, ChinaByte
渝ICP证B2-20030003号 如有意见请与我们联系 powered by 天极内容管理平台CMS4i