Visual studio 构建ApacheAxis2/C时使用未声明的标识符SO_ExclusivedDruse

Visual studio 构建ApacheAxis2/C时使用未声明的标识符SO_ExclusivedDruse,visual-studio,axis,winsock,Visual Studio,Axis,Winsock,我正在尝试构建ApacheAxis2/C(实际上我正在为它构建WSO2 WSF/C++包装器),当它遇到符号SO_exclusiveAdruse时,它总是给我一个错误。这是一个套接字选项,MSDN说它应该是可用的。我正在Win服务器2k3上使用MSVC++6.0。我没有选择编译器或操作系统。。。如果我在linux上,我已经完成了:P 我查看了一个VS2005安装,发现它包含winsock2.h中该常量的#define。它不在winsock2.h中,而在MSVC6中。另外,在VS2005中,它位于

我正在尝试构建ApacheAxis2/C(实际上我正在为它构建WSO2 WSF/C++包装器),当它遇到符号
SO_exclusiveAdruse
时,它总是给我一个错误。这是一个套接字选项,MSDN说它应该是可用的。我正在Win服务器2k3上使用MSVC++6.0。我没有选择编译器或操作系统。。。如果我在linux上,我已经完成了:P


我查看了一个VS2005安装,发现它包含winsock2.h中该常量的
#define
。它不在winsock2.h中,而在MSVC6中。另外,在VS2005中,它位于VS2005目录中的PlatformSDK文件夹下,而MSVC6上似乎没有任何这样的目录。为什么这个符号不见了?我怎样才能得到它?我很想把它抄过来,但谁知道我还会错过什么呢。。。有什么想法吗?

自从VisualStudio.NET2003以来,微软改变了交付PlatformSDK的方式。它允许C/C++编译器使用PlatformSDK,而不是与VC包捆绑的版本

您可以为Windows Server 2k3安装PlatformSDK,但将与VC 6.0一起使用的最后一个SDK是2003年2月版,该版本无法从Microsoft网站获得

因此,在使用
So#u exclusiveedruse
之前,您只需将
#define
复制到您的代码中即可。它应该在Win2k3下工作并支持