MFC程式退出時記憶體報錯的解決辦法

2021-07-22 16:16:41 字數 629 閱讀 4424

追蹤指標發現部分析構函式中的**沒有執行到,程式就直接報錯了,仔細的查詢後發現錯誤是由於delete了乙個已經在這之前delete過的指標物件而導致的

當時的**是這樣的:

建構函式中:

m_plastpageinfo = new pageinfo;//因為在程式中直接指向已存在的pageinfo陣列中的某一員,所以析構函式中不需要delete這兩個指標

m_pcurrentpageinfo = new pageinfo;

for(int i = 0;i < max_page;i++)

m_ppageinfo[i] = new pageinfo;

析構函式中:

delete m_pcurrentpageinfo;//在這裡加斷點卻沒有到這裡,

delete m_plastpageinfo;

for (int i = 0; i < max_page; i++)

delete m_ppageinfo[i];

因此在for迴圈中執行到某個位置時時必然會出錯(但是斷點卻不會執行到這裡來就直接報錯,不知道為什麼)

解決辦法:

注釋掉delete m_pcurrentpageinfo;和delete m_plastpageinfo;兩行就可以了

MFC對話方塊程式按回車後程式退出的解決辦法

1 最簡單的也是不太好的方法,過載pretranslatemessage函式,遮蔽掉enter鍵。這樣做的代價就是正常的按鍵也不能處理enter鍵了 bool cfindworddlg pretranslatemessage msg pmsg return cdialog pretranslatem...

MFC對話方塊應用程式關閉時,退出提示功能的新增

首先建立對話方塊應用程式,然後去資源檢視 如下圖 右擊新增類,建立相關類名,完成 然後右擊屬性,在屬性欄就能看到訊息事件 如下圖 找到wm close訊息,新增on close。跳轉到.cpp檔案,新增如下 即可 void ctest onclose 執行結果 注 mfc程式退出的方法不只只有這一種...

退出MFC應用程式的方法集

1 postquitmessage 0 最常用 2 postmessage wm quit,0,0 最常用 3 sendmessage afxgetmainwnd m hwnd,wm close,0,0 最常用 postmessage afxgetmainwnd m hwnd,wm close,0,...