【发布时间】:2015-12-03 17:26:55
【问题描述】:
我在一个项目中有 C++ 代码,它与 Visual Studio 2010 和 VS 2015 的行为不同。
if(return_val != 0)
{
ACE_OS::set_errno_to_last_error ();
result->set_error(errno);
}
return_val 是先前失败的函数的返回值。所以下一步是捕获错误值。
在 VS 2010 中
当调用 result->set_error(errno) 时,在调试时,控制转到在 source \VC\crt\src\dosmap.c 中定义的函数 _errno() 。
在 VS 2015 中 找不到源 dosmap.c。 我想 errno 的宏扩展必须在不同的地方。但是行为应该是一样的
我需要对 2015 年的 VS 设置进行任何更改吗? 任何帮助都会很有用。
【问题讨论】:
-
我不太明白你的问题。有什么不工作吗?为什么在哪里定义
errno很重要? -
在 VS 2010 中,errno 设置为值 2。而在 VS 2015 中,它设置为 0。
标签: c++ visual-studio-2010 ace