请问大家,最近在忙一个项目,在dll中因为使用了一些mfc
方面的东西,所以出了很多问题,经过跟踪,知道原来是,外部框架中的
theApp与dll中的theApp发生了指针混乱,打个比方,倘若调用dll中的函数,本来应该获得dll
中的全局变量theApp,却依然得到的是外部框架的全局变量theApp.
我使用了网上介绍的,在dll中的每个导出函数中都添加
AFX_MANAGE_STATE(AfxGetStaticModuleState()) ,但是依然没有效果,依然出现了
assert错误,错误代码是85 和 92.而且程序debug不能通过,而release可以通过.而且dll
中的模态对话框也不能使用

解决方案 »

  1.   

    不要用theApp,用别的方式来完成相关的操作,theApp是全局的,两个dll实例都有theApp会发生混乱。
      

  2.   


    那个是mfc自己生成的啊,怎么可以不用,难道直接注释了?还是改成其他名字啊,其他名字我改过的,会出现问题,难道是说在dll中不用mfc的东西吗??谢谢了啊
      

  3.   

    你别的地方没有用到类似theApp还有afxgetmainwnd之类的函数和全局变量啊?
      

  4.   


    在dll中用到很多theApp,因为需要这个全局变量传递一些公用的参数,倘若没有解决方法那只能改整个框架了,那样真的非常麻烦