Categories

WTL程序中使用 DEBUG_NEW检测内存泄露

熟悉MFC编程的人都知道在MFC中有个宏定义 DEBUG_NEW,只要在文件头添加几句话即可检测出内存泄露的具体在哪个文件中的哪一行, 比如在文件的开头部分添加如下代码:

1
2
3
#ifdef _DEBUG
#define new DEBUG_NEW
#endif

即可。 在WTL以及普通的SDK中并没有直接给出这样的宏定义, 所以必须自己定义。 其实很简单,和MFC下一样在文件开头出添加几行代码即可,

1
2
3
#ifdef _DEBUG
#define new new(_NORMAL_BLOCK, __FILE__, __LINE__)
#endif

这样就可以使WTL和SDK的程序也能在有内存泄露的情况下显示出具体的代码文件和行数,以便于查找修改。

原创文章如转载,请注明
转载自:FLYBLOG [http://www.flyblog.info]

本文链接地址:http://www.flyblog.info/catprogramming/238.html

2 Responses to “WTL程序中使用 DEBUG_NEW检测内存泄露”

Leave a Reply