modern 发表于 2010-4-30 10:48:08

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.

freeeyes 发表于 2010-4-30 11:37:52

不知道微软的搞什么。

modern 发表于 2010-4-30 12:25:56

嗯,不少开源库都得被这么折腾一下。

freeeyes 发表于 2010-4-30 13:32:44

微软经常把自己认为好的东西放进去,结果还不被别人支持,这也就罢了,还折腾一堆标准警告,这也就算了,现在连宏都不放过了。

winston 发表于 2010-4-30 14:00:48

微软发疯了。。。
我靠。

winston 发表于 2010-4-30 14:02:40

跟着微软的公司/人,经常要倒霉。因为微软三天两头的瞎折腾,那个office,翻来覆去的换界面,有人说office 2010的ui,让自己几乎发疯。还有那个SB设计的SB解决方案 - 清单机制。
看来还是unix阵营比较可靠。。。

sevencat 发表于 2010-5-2 07:56:08

真晕了,还有这事,微软真折腾。

shenming 发表于 2010-5-6 23:08:38

还好,我还在使用VC6和ACE5.5,不怕了

还好,我还在使用VC6和ACE5.5,不怕了,呵呵

Youth 发表于 2010-5-13 14:49:38

继续2008+5.7.1:)

earthdog 发表于 2010-7-13 22:41:35

这是VC2010的一个问题,因为VC2010提供了一个新的errno.h文件,在这里面定义的E*错误,所以ACE在os_errno.h文件中无法将这些定义成WSAE*的错误,才导致了你所说的问题,你可以把这些宏undefine掉,在os_errno.h头文件中ACE检查这些宏的位置之前。
页: [1] 2
查看完整版本: ACE5.7.8在vs2010正式版下不可用