基于MFC框架的应用程序由模板生成时,已经自动添加了内存泄漏自动检测功能,当你的程序有内存泄漏,在Debug调式模式下运行就会在vc的输出窗口里显示出来,容易发现并及时解决。但是我们在写一些测试程序时,往往喜欢用控制台程序来编写,但是VC控制台程序默认不自动添加内存泄漏自动检测功能,所以当我们写的测试程序中存在内存泄漏的问题时,不易被发现,可通过以下步骤添加:
1、在程序里定下一下宏(建议在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
2、在main()函数开头添加如下代码
#ifdef _DEBUG
CheckMemoryLeak;
#endif