error LNK2005: _DllMain@12 已经在 dllmain.obj 中定义今天遇到了同样的问题,搜索搜到了这里,后来解决了。。。。。。。。创建解决方案时,用的是WIN32 DLL,添加了MFC ATL的支持,自动生成文件中是没有现成的DllMain函数的。后来需要用到这个入口函数,所以自己人工添加了DllMain函数,调试结果就报错,退重复定义DllMain之类的。。。从其它地方找到了解决办法,这里给大家分享下:给项目添加一个dllmian.cpp,里边的内容为// dllmain.cpp : 定义 DLL 应用程序的入口点。#include "stdafx.h"// global data// The following symbol used to force inclusion of this module for _USRDLL#ifdef _X86_extern "C" { int _afxForceUSRDLL; }#elseextern "C" { int __afxForceUSRDLL; }#endifBOOL APIENTRY DllMain( HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved){switch (ul_reason_for_call){case DLL_PROCESS_ATTACH:case DLL_THREAD_ATTACH:case DLL_THREAD_DETACH:case DLL_PROCESS_DETACH:break;}return TRUE;}这样问题就 解决了。。最重要的就是#ifdef _X86_extern "C" { int _afxForceUSRDLL; }#elseextern "C" { int __afxForceUSRDLL; }#endif这段代码起到了强制执行你自定义的dllmain函数的作用。。