1. 程式人生 > >MFC中使用標準庫和MFC庫衝突問題

MFC中使用標準庫和MFC庫衝突問題

原因:庫衝突,兩個 庫執行順序問題

1,專案-屬性-連結器-命令列 /verbose:lib
然後編譯,可以看到查詢 庫的過程(我寫下我自己的log)
正在搜尋 C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib\OLDNAMES.lib:
1> 正在搜尋 C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\atlmfc\lib\uafxcwd.lib:
1>uafxcwd.lib(dllmodul.obj) : error LNK2005: [email protected]

已經在 LIBCMTD.lib(dllmain.obj) 中定義
1>uafxcwd.lib(afxmem.obj) : error LNK2005: “void * __cdecl operator new(unsigned int)” ([email protected]@Z) 已經在 LIBCMTD.lib(new.obj) 中定義
1>uafxcwd.lib(afxmem.obj) : error LNK2005: “void __cdecl operator delete(void *)” ([email protected]@Z) 已經在 LIBCMTD.lib(dbgdel.obj) 中定義
1>uafxcwd.lib(afxmem.obj) : error LNK2005: “void * __cdecl operator new[](unsigned int)” (
[email protected]
@Z) 已經在 libcpmtd.lib(newaop.obj) 中定義
1>uafxcwd.lib(afxmem.obj) : error LNK2005: “void __cdecl operator delete[](void *)” ([email protected]@Z) 已經在 LIBCMTD.lib(delete2.obj) 中定義
1> 正在搜尋 C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\lib\kernel32.lib:

從 上面可以看出來那兩個庫衝突了
2,解決方法:
專案-屬性-連結器-附加依賴項中加入
uafxcwd.lib
LIBCMTD.lib
忽略特定預設庫中加入
LIBCMTD.lib
uafxcwd.lib