关于用VC++6.0编译的纯C语言实现的Dll中加载MFC界面的体会
工作中遇到Dll里面需要调用界面的问题,如果MFC的DLL这个问题也好解决,只需要在DLL里面转换一下资源。
转换资源的方式也是借鉴别人的代码,不多说,大家可以搜索一下AFX_MANAGE_STATE(AfxGetStaticModuleState());网上有比较详细的解释。
我遇到的问题就是编译的时候遇见如此错误
Linking...
mfcs42.lib(dllmodul.obj) : error LNK2005: _DllMain@12 already defined in MSVCRT.lib(dllmain.obj)
看过N多大大的解决方法大同小异,大概如下
强制链接器按照正确的顺序链接库
- 在“项目”菜单上,单击“设置”。
- 在“项目设置”对话框的“以下项目的设置”视图中,单击以选中出现链接错误的项目配置。
- 在“链接”选项卡上,单击以选中“类别”组合框中的“Input”。
- 连接/输入/忽略库"和连接/输入/对象/库模块"中都输入mfcs42.lib就OK了。
转载于:https://blog.51cto.com/hilw0720/477870