Visual Studio 2008,错误 c2039:“set_new_handler”:不是“std”的成员
Posted
技术标签:
【中文标题】Visual Studio 2008,错误 c2039:“set_new_handler”:不是“std”的成员【英文标题】:Visual Studio 2008, error c2039: 'set_new_handler' : is not a member of 'std' 【发布时间】:2009-07-02 02:11:19 【问题描述】:所以前几天我去编译一个我正在处理的 VC++ 项目,突然间我几乎所有文件都出现错误:
new.h:错误 C2039:“set_new_handler”:不是“std”的成员 new.h: 错误 C2039: 'set_new_handelr' : 符号不能在 using 声明中使用
“new.h”和“set_new_handler”没有在我的任何文件中使用,所以我不知道这些错误是如何或为什么突然出现的,因为它们与 windows/VS 库文件有关。
有人知道我可以做些什么来清除这个错误并重新编译我的代码吗?
更新 在检查编译时包含的文件后,一些文件是 include 和一些是 .问题是它被包含在 afxwin.h 中并且被包含在第三方库中。老实说,我不知道如何处理这个问题......没有其他使用过这个代码的开发人员遇到这个问题,可能是设置问题吗?我没有使用预编译的头文件。
【问题讨论】:
通常在如果我冒险猜测,我会说 <new.h>
在全局命名空间中声明 set_new_handler
而 <new>
在 std
命名空间中声明它。一些代码包含<new.h>
,并期望它的行为就像它包含<new>
一样。我会怀疑 Evan 建议的某些 3rd 方库/头文件或预编译头文件。
您可以使用/showIncludes
或预处理源代码文件(使用/E
)并检查输出来缩小罪魁祸首。我通常使用后者并查看输出文件中的#line
指令以找出包含链。
祝你好运。
【讨论】:
以上是关于Visual Studio 2008,错误 c2039:“set_new_handler”:不是“std”的成员的主要内容,如果未能解决你的问题,请参考以下文章
在 Visual Studio 2008 中将 Fxcop 错误显示为编译错误
链接错误2005 Visual Studio 2008 C++
奇怪的 Visual Studio 2008 C++ 编译器错误