用Visual C++编写DLL,如果在new project时选了MFC DLL,而后又想写成Regular DLL,即拥有自己的DllMain()入口函数,则在build时会遇到类似如下的link错误:
error LNK2005: _DllMain@12 already defined in xxx.OBJ
几种解决方案:
1, 你只需要在工程设置里面,把
WIN32,NDEBUG,_WINDOWS,_MBCS,_USRDLL,MSGBOX_EXPORTS,_WINDLL,_AFXDLL
中的_USRDLL,删除,就可以正确编译了
PS:在建立动态链接库工程的时候,如果选择建立一个simple project,建好后默认为mfc的,如果想建立一个拥有DllMain()的工程,则需要建立一个empty工程,自己添加文件。
本文介绍如何解决在使用Visual C++编译DLL时遇到的错误:_DllMain@12 already defined in xxx.OBJ。通过调整工程设置中的_USRDLL选项,可以成功编译出具有自定义DllMain()函数的DLL。

6637

被折叠的 条评论
为什么被折叠?



