由于引用MFC库导致DllMain重复定义问题解决 error LNK2005
最近在做一个项目,有个工程叫COMMUtil(DLL工程).原本该项目中用的都是STL中的类。现在由于用了一个第三方的一个日志工具,里面用到了CString等MFC提供的类,所有要加上对MFC的引用。 将原本的使用Windows库改为在共享DLL中使用MFC. 但是编译后会报错。报错内容如下: ----- 已启动生成: 项目: COMMUtil, 配置: Debug Win32 ------ 1>正在编译... 1>COMMUtil.cpp 1>正在链接... 1>COMMUtil.obj : error LNK2005: _DllMain @12 已经在 mfcs80d.lib(dllmodul.obj) 中定义 1>..\debug\COMMUtil.dll : fatal error LNK1169: 找到一个或多个多重定义的符号 1>生成日志保存在“file://e:\COMM\COMMUtil\Debug\BuildLog.htm” 1>COMMUtil - 2 个错误,0 个警告 ========== 生成: 0 已成功, 1 已失败, 0 最新, 0 已跳过 ========== 解决办法,当添加MFC库时,在其中已经定义了DLLMAIN这个方法,所有需要将我COMMUtil.cpp文件中的DllMain 函数去掉即可。(方法来源: http://www