我编了一个基于对话框的标准MFC程序,并且为对话框上的两命令按钮设置了两个CButton类的变量,程序能够正常运行.
   但奇怪的是当我再加一个命令按钮,并为之设置了一个CButton类的变量后,用调试(F5)键调试程序后,编译能够通过,但运行时产生了一个"Unhandled exception in xxx.exe(我的程序名):0xc0000005 Access Violation"的对话框提示,接着程序就没反应了.
   用断点来调试,发现执行到InitInstance函数里的m_pMainWnd = &dlg(dlg是程序中对话框对象),语句时会出现以上的对话框,并且执行不下去了.
   构建生成的可执行文件双击也没反应
   问了好几个人都不知道这是什么错,望有高手能解答,谢了!

解决方案 »

  1.   

    你有没有删除dialog上的Button,但跟这个button相关的变量和DDX都没有删除?
    请检查
      

  2.   

    同意楼上;不行的话;重新按你的步骤建一遍项目;
    DDX没有删除时,会出现这种情况;
      

  3.   

    打开你的资源文件(以SRC方式打开),删除掉错误的ID与定义。
    然后在删除掉CPP与H中的变量说明与DDX。
      

  4.   

    DDX是DoDataExchange函数中的那条语句吗?已经删除了,还有哪里需要删除?
      

  5.   


    m_pMainWnd = &dlg; 这基于下面的一个事实:类CWinThread的数据成员m_pMainWnd有一个有用的特征,如果由该成员所引用的窗口被关闭的话,MFC库将自动的终止CWinThread对象所代表的线程。这样,如果我们将指向dlg的指针赋予了成员变量m_pMainWnd,那么,无论我们单击了“确认”还是“取消”,应用程序的主线程都将被自动终止,之后的代码当然不会得到执行。 
      

  6.   

    .cpp里的DDX...和.h里的afx_msg...都要删除才行。