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; } #else extern "C" { int __afxForceUSRDLL; } #endif BOOL 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; } #else extern "C" { int __afxForceUSRDLL; } #endif 這段代碼起到了強制執行你自定義的dllmain函數的作用。。
