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