vs2008下的MFC程式,怎麼檢測記憶體洩露

十日十乞001發表於2017-06-12

假如是用MFC的程式的話,很簡單。預設的就有記憶體洩露檢測的功能。我們用VS生成了一個MFC的對話方塊的程式,發現他可以自動的檢測記憶體洩露.不用我們做任何特殊的操作. 仔細觀察,發現在每個CPP檔案中,都有下面的程式碼:

#ifdef _DEBUG

#define new DEBUG_NEW

#endif

DEBUG_NEW 這個巨集定義在afx.h檔案中,就是它幫助我們定位記憶體洩漏。     在含有以上程式碼的cpp檔案中分配記憶體後假如沒有刪除,那麼停止程式的時候,VisualStudio的Output視窗就會顯示如下的資訊了:

1
2
3
4
5
Detected memory leaks!
Dumping objects ->
d:\code\mfctest\mfctest.cpp(80) : {157} normal block at 0x003AF170, 4 bytes long.
Data: < > 00 00 00 00
Object dump complete.

    在Output視窗雙擊粗體字那一行,那麼IDE就會開啟該檔案,定位到該行,很容易看出是哪出現了記憶體洩露

相關文章