在MFC中內(nèi)存泄漏對程序有很大的隱患,雖然剛開始操作沒什么,但是過了幾小時,幾天,有的甚至要幾年才會發(fā)現(xiàn),內(nèi)存泄漏之后所有內(nèi)存被占滿了,所以一般程序員都會手動去管理MFC的內(nèi)存,基本都是new一個對象都會去delete來釋放掉,有時候忘了怎么辦呢?當然有檢查的辦法,我這里有一種小小的解決辦法,一般對不是很大的程序都會有幫助的.
1.在stdafx.h頭文件中添加兩行代碼
//內(nèi)存泄露檢測
#define _CRTDBG_MAP_ALLO
#include <crtdbg.h>
2.在程序退出的地方添加函數(shù)缩宜,
_CrtDumpMemoryLeaks();
執(zhí)行程序凡恍,如果有內(nèi)存泄露則可以在調(diào)試輸出窗口看到如下信息:
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
能看到泄露的內(nèi)存分配時候的文件主守、代碼行依许,等信息
是不是很easy?