我想让我的基于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()似乎解决了这个问题,但这是令人担忧的。