风神

悟空。。。。。。。。。
posts - 5, comments - 6, trackbacks - 0, articles - 0
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

在VC中,基于MFC框架的应用程序由模板生成时,已经自动添加了内存泄漏自动检测功能。当你的程序有内存泄漏,在Debug调式模式下运行就会在vc的输出窗口里显示出来,非常方便我检查程序漏洞。但是当我写一些测试程序时,往往喜欢用控制台程序来编写,但是控制台程序不会自动添加内存泄漏自动检测功能。我在网上搜索了下,找到了添加的方法,经过我的整理把他写出来,希望对我们都有用!

第一步:在程序里定下一下宏(建议定义在stdafx.h头文件中)

#ifdef _DEBUG
 
//for memory leak check
 #define _CRTDBG_MAP_ALLOC //使生成的内存dump包含内存块分配的具体代码为止
 #include 
<stdlib.h> 
 #include 
<crtdbg.h>
 
#define CheckMemoryLeak _CrtSetDbgFlag( _CrtSetDbgFlag( _CRTDBG_REPORT_FLAG )| _CRTDBG_LEAK_CHECK_DF)
#endif 

第二步:在程序的入口处(就是main函数的开头)写如下语句

#ifdef _DEBUG
 CheckMemoryLeak;
#endif

经过这两步我们的控制台程序就已经可以自动检测内存泄漏了,不信?你自己试试不就知道了!:)

Feedback

# re: 给VC的控制台程序添加内存泄漏自动检测功能  回复  更多评论   

2009-09-01 13:40 by sss
学了一招,谢谢!

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理