昨晚上看了看到了mfc dll编程的部分,按着书中的例子将程序再现了一遍。但是其中却遇到了问题,在dll中的对话框在建立的时候老是显示
c:/program files/microsoft visual studio/myprojects/dllregular/dlldialog.h(21) : error C2065: 'IDD_DIALOG' : undeclared identifier
c:/program files/microsoft visual studio/myprojects/dllregular/dlldialog.h(21) : error C2057: expected constant expression 这样的错误,我换到mfc(exe)中同样添加对话框编译却不会显示,一直没弄明白,不过无所谓,在我添加了Resource.h头文件的引用后,dll程序编译生成通过。但是在测试程序中始终不能显示。我在其中放置了一些TRACE代码,调试运行时发现这些代码可以显示。dll中的调用函数代码如下:
我下载了这些文章的源代码发现他们真的还是这样的,不知道为什么我的就不行,后来看书发现有些书上说如果你从mfc程序或者扩张mfc DLL中调用mfc函数,需要在所有导出函数的开始出添加
AFX_MANAGE_STATE(AfxGetStaticModuleState());
之后再编译生成测试通过,但是我现在还没明白为什么示例源代码中的又可以运行通过呢?