nafxcwd.lib(afxmem.obj) error lnk2005

最近写程序突然遇到个错误: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 的重定义宏

你可能感兴趣的:(nafxcwd.lib(afxmem.obj) error lnk2005)