关于1>uafxcwd.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new(unsigned int)" (??2@YAPAXI

来源:互联网 发布:idp诺思留学知乎 编辑:程序博客网 时间:2024/06/04 18:04

1.我在使用HP-Socket的pull例子时添加GeneralHelper.h头文件后编译时会报以下错误

1>  d:\__wang\sdk\hpsocket-5.02\common\src\debug\win32_crtdbg.h(141): note: 参见“new”的前一个定义
1>  正在生成代码...
1>uafxcwd.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new(unsigned int)" (??2@YAPAXI@Z) 已经在 stdafx.obj 中定义
1>uafxcwd.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new(unsigned int,char const *,int)" (??2@YAPAXIPBDH@Z) 已经在 FullEQServerDlg.obj 中定义
1>uafxcwd.lib(afxmem.obj) : error LNK2005: "void __cdecl operator delete(void *)" (??3@YAXPAX@Z) 已经在 FullEQServerDlg.obj 中定义
1>uafxcwd.lib(afxmem.obj) : error LNK2005: "void __cdecl operator delete(void *,char const *,int)" (??3@YAXPAXPBDH@Z) 已经在 FullEQServerDlg.obj 中定义
1>uafxcwd.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new[](unsigned int)" (??_U@YAPAXI@Z) 已经在 stdafx.obj 中定义
1>uafxcwd.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new[](unsigned int,char const *,int)" (??_U@YAPAXIPBDH@Z) 已经在 helper.obj 中定义
1>uafxcwd.lib(afxmem.obj) : error LNK2005: "void __cdecl operator delete[](void *)" (??_V@YAXPAX@Z) 已经在 helper.obj 中定义
1>D:\__wang\workspace\Projects\FullEQServer\Debug\FullEQServer.exe : fatal error LNK1169: 找到一个或多个多重定义的符号


以上提示最重要的是“win32_crtdbg.h(141): note: 参见“new”的前一个定义” ,看了此文件代码发现它里面重定义了new delete等等,所以在GeneralHelper.h文件结尾把下面的注释掉就可以了。

#if defined (_DEBUG) && defined (_DETECT_MEMORY_LEAK)
#include "debug/win32_crtdbg.h"
#endif

阅读全文
0 0