各位高手,为什么我的程序在使用了几个月之后出现了这样的问题,一个对话框DoModal()后,IDOK或者IDCANCLE 都会出现异常呢?而换了台机子就没有异常了呢?跟踪发现大概是ondestroybutton()时的问题,是程序的问题吗?真实奇怪呢。

解决方案 »

  1.   

    简单说明白一点吧:1、开始的时候程序并没有问题,使用几个月后发生的
                      2、且此问题如果换了台机子程序正常运行
                      3、问题是:对话框DoModal()后,IDOK或者IDCANCLE 都会出现异常,跟 踪发现大概是ondestroybutton()时的问题
                      谢谢大家了
      

  2.   

    大概是ondestroybutton()时??????
      

  3.   

    估计还是你的程序有问题,你在对话框返回后是不是做了什么操作?比如象这样:
    CDlgTest dlg;
    dlg.DoModal();
    CString strValue=dlg.m_strValue;//<------比如说类似于这样的操作?
      

  4.   

    跟踪后发现是在函数CWnd::DestroyWindow()中
    ASSERT(pMap->LookupPermanent(hWndOrig) == NULL);这一句出现异常的
      

  5.   

    是不是用了第三方的控件啊?或都是换皮肤的东东?
    我的程序用了skinpp后也是跟踪到这儿出问题,不过Release版本的没问题.
    你编译个Release版本的再试一下,Release版本里面没有ASSERT判断,应该没问题.
    我的程序就是这样的.