我编了一个基于对话框的标准MFC程序,并且为对话框上的两命令按钮设置了两个CButton类的变量,程序能够正常运行.
但奇怪的是当我再加一个命令按钮,并为之设置了一个CButton类的变量后,用调试(F5)键调试程序后,编译能够通过,但运行时产生了一个"Unhandled exception in xxx.exe(我的程序名):0xc0000005 Access Violation"的对话框提示,接着程序就没反应了.
用断点来调试,发现执行到InitInstance函数里的m_pMainWnd = &dlg(dlg是程序中对话框对象),语句时会出现以上的对话框,并且执行不下去了.
构建生成的可执行文件双击也没反应
问了好几个人都不知道这是什么错,望有高手能解答,谢了!
但奇怪的是当我再加一个命令按钮,并为之设置了一个CButton类的变量后,用调试(F5)键调试程序后,编译能够通过,但运行时产生了一个"Unhandled exception in xxx.exe(我的程序名):0xc0000005 Access Violation"的对话框提示,接着程序就没反应了.
用断点来调试,发现执行到InitInstance函数里的m_pMainWnd = &dlg(dlg是程序中对话框对象),语句时会出现以上的对话框,并且执行不下去了.
构建生成的可执行文件双击也没反应
问了好几个人都不知道这是什么错,望有高手能解答,谢了!
请检查
DDX没有删除时,会出现这种情况;
然后在删除掉CPP与H中的变量说明与DDX。
m_pMainWnd = &dlg; 这基于下面的一个事实:类CWinThread的数据成员m_pMainWnd有一个有用的特征,如果由该成员所引用的窗口被关闭的话,MFC库将自动的终止CWinThread对象所代表的线程。这样,如果我们将指向dlg的指针赋予了成员变量m_pMainWnd,那么,无论我们单击了“确认”还是“取消”,应用程序的主线程都将被自动终止,之后的代码当然不会得到执行。