关于用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多大大的解决方法大同小异,大概如下 

    强制链接器按照正确的顺序链接库

  1. 在“项目”菜单上,单击“设置”。
  2. 在“项目设置”对话框的“以下项目的设置”视图中,单击以选中出现链接错误的项目配置。
  3. 在“链接”选项卡上,单击以选中“类别”组合框中的“Input”。
  4. 连接/输入/忽略库"和连接/输入/对象/库模块"中都输入mfcs42.lib就OK了。