刚在试将程序从debug模式转到release模式,然后报错: nafxcwd.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new(unsigned int)" (??2@YAPAXI@Z) 已经在 LIBCMTD.lib(new.obj) 中定义 nafxcwd.lib(afxmem.obj) : error LNK2005: "void __cdecl operator delete(void *)" (??3@YAXPAX@Z) 已经在 LIBCMTD.lib(dbgdel.obj) 中定义 nafxcwd.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new[](unsigned int)" (??_U@YAPAXI@Z) 已经在 LIBCMTD.lib(new2.obj) 中定义 nafxcwd.lib(afxmem.obj) : error LNK2005: "void __cdecl operator delete[](void *)" (??_V@YAXPAX@Z) 已经在 LIBCMTD.lib(delete2.obj) 中定义 ##A 如果项目是多字节字符编码,在项目->属性->连接器->输入: Debug: 附加依赖项:nafxcwd.lib;libcmtd.lib 忽略指定库:nafxcwd.lib;libcmtd.lib Release: 附加依赖项:nafxcw.lib;libcmt.lib 忽略指定库:nafxcw.lib;libcmt.lib ##B 如果项目是UNICODE字符编码,在项目->属性->连接器->输入<注意库的顺序>: Debug: 附加依赖项:uafxcwd.lib;libcmtd.lib 忽略指定库:uafxcwd.lib;libcmtd.lib Release: 附加依赖项:uafxcw.lib;libcmt.lib 忽略指定库:uafxcw.lib;libcmt.lib 说明: 以上错误原因是由于这二个库有各自的new和delete,这是冲突的,需要指定顺序。正确加载库的顺序是Nafxcwd.lib Libcmtd.lib,而默认的是Libcmtd.lib Nafxcwd.lib。 所以就会报出上面的那个error。