編譯無錯誤﹐運行是Debug Assertion Failed。
file: afx.inlRAIDO BUTTON﹐like:
void CChatDlg::OnSeverSide() 
{
UpdateData(TRUE); //註解掉此行﹐錯誤消失
GetDlgItem(IDC_EDIT_IPADDR)->EnableWindow(FALSE);
GetDlgItem(IDC_EDIT_PORT)->EnableWindow(TRUE);
UpdateData(FALSE);

}還有在呼出對話框中
void CChatDlg::OnDisconnect() 
{
CChatDlg::OnCancel();// 此處主程序退出。
}
請問為什麼﹖

解决方案 »

  1.   

    你在什么地方调用了这个OnSeverSide() CChatDlg::OnCancel();// 你想让它做什么呢?
      

  2.   

    OnCancel();//默认退出对话框,如果对话框是主窗口,程序当然会退出
      

  3.   

    该问题应该在于你使用Wizard对窗口中某一个控件和类型变量之间进行了映射,使用UpdateData更新值时出错。请将变量删掉就好了
      

  4.   

    你有没有给您的EDIT定义对应的变量?UpdateData(true)是对控件和变量之间的传输命令,如果映射错误,就会出现使用UpdateData(true)出错。
      

  5.   

    to: microyzy(毛毛叉) 
       sorry, 对话框不是主窗口。to: xt_jat(桑巴)
       是RAIDO BUTTON(好像是這樣叫吧)to:hfqian() 
       這可能是問題的所在。
       我對CSuperEdit(派生from CEdit)類 和 之變量 m_oSuperEdit进行了映射
    但是我不可以删掉改變量。
      

  6.   

    to: nj_zhulin(e路飞翔) 
     >>你的”映射错误“ 是指什麼. 使用Wizard會出現映射错误嗎﹖我的手工映射﹐沒有錯誤存在。
      

  7.   

    to: xt_jat(桑巴)
    >>CChatDlg::OnCancel();// 你想让它做什么呢?
    只是close對話框。此函數之前有處理﹐只是沒有帖。
    any idea about it?
      

  8.   

    1.当程序处在断点时,用Alt+F7 可打开Call Stack 窗体,在该窗体中双击函数名能定位到“程序运行到何处时出错的”2.重装VC,在自定义需要安装的组件时,选择“Microsoft Visual C++ 6.0”,单击更改按纽,进入子项,然后依次进入“VC++ MFC and Template Libraries”->“MS Foundation Class Libraries”->“Source Code”把MFC的源代码也安装上去
    以后当编译器提示Assertion Failed 它会自动打开源文件,并定位到ASSERT 语句上,一般的ASSERT 都会有注释的,估计看了注释你就明白那里错了
      

  9.   

    你为什么不可以删除该变量呢,既然没有使用,多余也是多余。要不就需要对其进行操作(使用UpdateData())