ACE5.7.8在vs2010正式版下不可用
不解释了,下面的转的一段话说得比较清楚了。It says that you can #define errno WSAGetLastError() and has the following example:
r = recv(...);
if (r == -1 /* (but see below) */
&& WSAGetLastError() == EWOULDBLOCK)
{...}
This code will NOT work in VS2010 because EWOULDBLOCK is 140 and WSAEWOULDBLOCK is 10035L.
Some popular libraries like openssl are now broken because of this. 不知道微软的搞什么。 嗯,不少开源库都得被这么折腾一下。 微软经常把自己认为好的东西放进去,结果还不被别人支持,这也就罢了,还折腾一堆标准警告,这也就算了,现在连宏都不放过了。 微软发疯了。。。
我靠。 跟着微软的公司/人,经常要倒霉。因为微软三天两头的瞎折腾,那个office,翻来覆去的换界面,有人说office 2010的ui,让自己几乎发疯。还有那个SB设计的SB解决方案 - 清单机制。
看来还是unix阵营比较可靠。。。 真晕了,还有这事,微软真折腾。
还好,我还在使用VC6和ACE5.5,不怕了
还好,我还在使用VC6和ACE5.5,不怕了,呵呵 继续2008+5.7.1:) 这是VC2010的一个问题,因为VC2010提供了一个新的errno.h文件,在这里面定义的E*错误,所以ACE在os_errno.h文件中无法将这些定义成WSAE*的错误,才导致了你所说的问题,你可以把这些宏undefine掉,在os_errno.h头文件中ACE检查这些宏的位置之前。
页:
[1]
2