追蹤指標發現部分析構函式中的**沒有執行到,程式就直接報錯了,仔細的查詢後發現錯誤是由於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,...