描述:
以前DEBUG版也正常,后基本上在Release版编译调试,现改为DEBUG版时突然出现通过IE启动时,对话框关闭时都出现VC弹出的大红叉,而通过我的MFC做的测试程序启动也不出现。基本上任何对话框,如: CAboutDlg dlg; dlg.DoModal();都会出现,但AfxMessageBox等系统对话框不出现。
出现的大红叉窗口信息如下:
窗口标题:Microsoft Visisal C++ Debug Library
窗口内容:Debug Assertion Failed !
Program: D:\Program Files\Internet Explorer\IExplorer.exe
File: wincore.cpp
Line: 980
...
按重试进入调试,断点在:D:\...\MFC\SRC\WINCORE.CPP
...
BOOL CWnd::DestroyWindow()
{
...
if(pWnd != NULL )
{
// Should have been detached by OnNcDestroy
#ifdef _DEBUG
ASSERT (pMap->LookupPermanent(hWndOrig) == NULL);
#endif
}
...
}
断点就在上面这个ASSERT行,大红叉也是由此引起的。
是我的程序哪里出错了吗?
解决方案1:
检查一下你写的组件是否有对话框或窗口资源没有彻底释放?