用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工程,自己添加文件。
网友评论