拿掉之後跑出
Error 1 error LNK2005: "void * __cdecl operator new(unsigned __int64)" (??2@YAPEAX_K@Z) already defined in LIBCMTD.lib(new.obj) C:\Users\Xerxes\Documents\Visual Studio 2010\Projects\test1\test1\uafxcwd.lib(afxmem.obj)
Error 2 error LNK2005: "void __cdecl operator delete(void *)" (??3@YAXPEAX@Z) already defined in LIBCMTD.lib(dbgdel.obj) C:\Users\Xerxes\Documents\Visual Studio 2010\Projects\test1\test1\uafxcwd.lib(afxmem.obj)
Error 3 error LNK2005: "void * __cdecl operator new[](unsigned __int64)" (??_U@YAPEAX_K@Z) already defined in LIBCMTD.lib(new2.obj) C:\Users\Xerxes\Documents\Visual Studio 2010\Projects\test1\test1\uafxcwd.lib(afxmem.obj)
Error 4 error LNK2005: "void __cdecl operator delete[](void *)" (??_V@YAXPEAX@Z) already defined in LIBCMTD.lib(delete2.obj) C:\Users\Xerxes\Documents\Visual Studio 2010\Projects\test1\test1\uafxcwd.lib(afxmem.obj)
Error 5 error LNK1169: one or more multiply defined symbols found C:\Users\Xerxes\Documents\Visual Studio 2010\Projects\test1\x64\Debug\test1.exe 1
問題在CRT和MFC library都有new delete等function, 需要先link MFC libray再link CRT
Solution:
Properties -> Linker --> Input --> Additional dependencies
加入;uafxcwd.lib;LIBCMTD.lib
順序不可以改變
參考: http://support.microsoft.com/kb/148652

沒有留言:
張貼留言