情况是这样的-->
有一个主程序(exe)会调用我写的DLL,
在主程序界面执行某个操作,会调用DLL中的一个函数,而这个函数做的事情是,
当满足一定条件时:
AFX_MANAGE_STATE(AfxGetStaticModuleState());
CMyDlg m_dlg;
m_dlg.DoModal();结果发生:Debug Assertion Failed!
并且指明了是objcore.cpp的问题,单步调试进去,程序停在了:
BOOL CObject::IsKindOf(const CRuntimeClass* pClass) const
{
    ENSURE(this != NULL);
    ......
}
继续运行下去,就会destroyWindow(),把DoModal window销毁看了网上很多帖子,说是模块资源问题...但用了AFX_MANAGE_STATE也没效果啊

解决方案 »

  1.   

    已经找到了一个办法,可以避掉这个问题,但不能从根本上解决
    可以在release模式下运行DLL文件,让exe去调用它...release省去不少麻烦啊如果哪位大虾可以从根本上解决就好啦!
      

  2.   

    http://topic.csdn.net/u/20080307/22/bbfe7258-0b2c-40aa-9424-4cf52edbd6a8.html
    把旧帖子翻出来,O(∩_∩)O~
      

  3.   

    DLL,exe都用Release模式,而且保持一致的运行时库版本
      

  4.   

    要确保主程序和DLL程序生成的环境一样,
    比如主程序使用x86CPU,dll也要使用x86CPU,
    就不会出现问题