在MFC中内存泄漏对程序有很大的隐患,虽然刚开始操作没什么,但是过了几小时,几天,有的甚至要几年才会发现,内存泄漏之后所有内存被占满了,所以一般程序员都会手动去管理MFC的内存,基本都是new一个对象都会去delete来释放掉,有时候忘了怎么办呢?当然有检查的办法,我这里有一种小小的解决办法,一般对不是很大的程序都会有帮助的.
1.在stdafx.h头文件中添加两行代码
//内存泄露检测
#define _CRTDBG_MAP_ALLO
#include <crtdbg.h>
2.在程序退出的地方添加函数,
_CrtDumpMemoryLeaks();
执行程序,如果有内存泄露则可以在调试输出窗口看到如下信息:
Detected memory leaks!
Dumping objects ->
tooltip.cpp(394) : {387} client block at 0x00387FE0, subtype c0, 112 bytes long.
a CToolTipCtrl object at $00387FE0, 112 bytes long
g:\c++\vc_prac\mfc_prac\pos_system\pos_systemview.cpp(174) : {312} normal block at 0x00387F40, 100 bytes long.
Data: < > CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD
能看到泄露的内存分配时候的文件、代码行,等信息
是不是很easy?