我的DLL中有对话框资源,在打开对话框对话框是要切换资源句柄,因此,在构造对话框的时候要用到AFX_EXTENSION_MODULE中的hResource。我为了让整个项目都能使用那个静态对象,于是,我把:
static AFX_EXTENSION_MODULE ToolWindowInterfaceDLL = { NULL, NULL };
这句,放到了stdafx.h中。调试的时候在
AfxSetResourceHandle(UseResource);//(UseResource 传递的是ToolWindowInterfaceDLL.hResource的值)
这句上出错。跟踪发现,UseResource为0,再跟踪,发现。ToolWindowInterfaceDLL 的地址,出了DllMain函数之后,就立马发生了变化。请问,这是什么原因造成的?

解决方案 »

  1.   

    static AFX_EXTENSION_MODULE ToolWindowInterfaceDLL = { NULL, NULL };  问一下这句是什么意思,我是初学。??谢谢。。
      

  2.   


    定义了一个AFX_EXTENSION_MODULE 类型的变量ToolWindowInterfaceDLL,ToolWindowInterfaceDLL是静态变量,并且对其第一第二个成员赋值为NULL;
      

  3.   


    时间太长了,原因忘记了,我的解决方法:
    stdafx.h中
    extern AFX_EXTENSION_MODULE * MyDllExtensionModule;
    stdafx.cpp中
    AFX_EXTENSION_MODULE * MyDllExtensionModule ;
    然后在DllMain函数中添加:MyDllExtensionModule=&ToolWindowInterfaceDLL;
    使用的时候就用MyDllExtensionModule,就可以