我想讓我的基於CDialog的應用程序關閉。我調用CWnd :: OnClose()然後調試器進入Windows系統文件。在調試器輸出窗口中,我無限期地獲取這些循環線。MFC對話框應用程序不關閉
線程'Win32 Thread'(0x1040)已退出,代碼爲0(0x0)。 線程'Win32線程'(0x2fa4)已退出,代碼爲0(0x0)。 線程'Win32 Thread'(0x1ca0)已退出代碼0(0x0)。 'LifescanDatabaseApplication.exe':卸載'C:\ Windows \ SysWOW64 \ davclnt.dll' 'LifescanDatabaseApplication.exe':卸載'C:\ Windows \ SysWOW64 \ davhlpr.dll' 'LifescanDatabaseApplication.exe':Loaded'C :\ WINDOWS \ Syswow64資料\ davclnt.dll」,無法找到或打開PDB文件 'LifescanDatabaseApplication.exe':已加載 'C:\ WINDOWS \ Syswow64資料\ davhlpr.dll',無法找到或打開PDB文件
任何想法,我已經打破或我應該如何追蹤它? 謝謝, James
編輯 對話框的函數OnClose()在這裏顯示;
void CApplicationDlg::OnClose()
{
UpdateData(TRUE);
if(AfxMessageBox(_T("Are you sure you want to close? If so, no more updates will be issued"),MB_YESNO)==IDYES)
{
Logger * instance = Logger::Instance();
if(instance!=nullptr)
{
instance->writeToLogFile("Application shutdown.");
}
CWnd::OnClose();
}
}
我已經通過調試器通過Cwnd :: OnClose()命令跟蹤了這一點。問題是,代碼沒有回到調用對話框來運行EndDialog的部分。我想我已經改變了對話框代碼中的其他地方,正在停止這項工作。
編輯2: 用this-> EndDialog(0)替換CWnd :: OnClose()似乎解決了這個問題,但這是令人擔憂的。