最近寫程序突然遇到個錯誤:nafxcwd.lib(afxmem.obj) error lnk2005
查了下msdn發現主要原因是同時使用了CRT中的new, delete和MFC中的new, delete重載導致的,參考:http://support.microsoft.com/kb/148652/en-us
總結下我這邊發生的情況:
工程中包含了靜態鏈接庫,而這個鏈接庫只使用了CRT,並且在一些實現文件中重定義了new
#ifdef _DEBUG
#define new new( _CLIENT_BLOCK, __FILE__, __LINE__ )
#endif
然而,客戶端確實一個MFC程序,所以在連接時發生lnk2005衝突,所以這種情況的簡單解決方案就是刪掉對new 的重定義宏