MFC中的退出应用程序问题
MFC中重载ExitInstance时为什么在调用AfxPostQuitMessage后,有时执行1和2然后退出程序,有时不执行2退不出CMainClass*g_pMai...
MFC中重载ExitInstance时为什么在调用AfxPostQuitMessage后,有时执行1和2然后退出程序,有时不执行2退不出
CMainClass * g_pMainClass = new CMainClass();
int CWHTApp::ExitInstance()
{
if (g_pMainClass)
{
1.....................delete g_pMainClass;
2.....................g_pMainClass = NULL;
}
return CWinApp::ExitInstance();
}
开什么国际玩笑,真正的退出应用程序是在CWinApp::ExitInstance();麻烦动手试试. 展开
CMainClass * g_pMainClass = new CMainClass();
int CWHTApp::ExitInstance()
{
if (g_pMainClass)
{
1.....................delete g_pMainClass;
2.....................g_pMainClass = NULL;
}
return CWinApp::ExitInstance();
}
开什么国际玩笑,真正的退出应用程序是在CWinApp::ExitInstance();麻烦动手试试. 展开
3个回答
展开全部
看你的程序是不是和多线程有关,检查你的代码,并且看你连接的标准库和mfc库是否是支持多线程的对应版本。
追问
没有多线程
追答
有可能的原因:
CWinApp::InitInstance()中有m_pMainWnd = pFrame语句,pFrame为主窗口指针。且在程序退出时,m_pMainWnd仍指向pFrame,否则CWinApp不调用CWinApp::ExitInstance().
如果不是上述原因,用异常try语句捕捉你的代码,看是否代码产生了异常导致应用程序 异常退出,最常见的情况,检查每个你自定义类的析构函数,先注释掉析构函数代码再一段段加上,看是否有非法代码。多半是你的CMainClass的析构函数产生了异常。是否在析构函数中操作了可能不再有效的资源。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询