DllMain重複定義的錯誤

2021-04-12 16:43:04 字數 1031 閱讀 5254

今天建立winsole dll工程,從mfc工程中拷貝過來檔案,遇到如下問題:

linking...

nafxcwd.lib(dllmodul.obj) : error lnk2005: _dllmain@12 already defined in libcmtd.lib(dllmain.obj)

nafxcwd.lib(afxmem.obj) : error lnk2005: "void * __cdecl operator new(unsigned int)" (??2@yapaxi@z) already defined in libcmtd.lib(new.obj)

nafxcwd.lib(afxmem.obj) : error lnk2005: "void __cdecl operator delete(void *)" (??3@yaxpax@z) already defined in libcpmtd.lib(delop.obj)

nafxcwd.lib(dllmodul.obj) : warning lnk4006: _dllmain@12 already defined in libcmtd.lib(dllmain.obj); second definition ignored

nafxcwd.lib(afxmem.obj) : warning lnk4006: "void * __cdecl operator new(unsigned int)" (??2@yapaxi@z) already defined in libcmtd.lib(new.obj); second definition ignored

nafxcwd.lib(afxmem.obj) : warning lnk4006: "void __cdecl operator delete(void *)" (??3@yaxpax@z) already defined in libcpmtd.lib(delop.obj); second definition ignored

重新指定庫的順序

選單project-》settings-》link-》input中設定 nafxcwd.lib libcmtd.lib

C變數重複定義錯誤

c c 語言中有很多地方要用到extern,但是如果沒有真正的了解它的意義,會給程式設計帶來很大的麻煩,為了使大家少走彎路,特祥細的說明一下。對於比較小的程式,一般只有乙個c檔案和乙個標頭檔案,全域性變數我們通常會直接定義在c檔案中,在程式之前加int i定義。如果要在標頭檔案中定義有以下兩種方法 ...

C 學習之重複定義的錯誤

原始檔如下 1.cpp void show cout hello world 2.cpp include 1.cpp int main cout main 編譯通過,鏈結錯誤,提示duplicate symbol z6showv 這是因為第二個cpp檔案直接將第乙個cpp檔案包含進來,而不是標頭檔案...

VC 編譯 重複定義錯誤解決

ms vc6 鏈結錯誤處理 在windows xp下編譯的軟體,放到windows 2000上使用時,跳出了 無法找到動態鏈結庫msvcrtd.dll 的提示,後來還是直接將msvcrtd.dll從winxp系統目錄下copy過來使用來解決問題的。不過在解決問題過程中,有其他意外收穫,現在記下來,說...