0

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

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

4

1 回答 1

1

自 Visual Studio .Net 2003 以来,Microsoft 改变了提供 PlatformSDK 的方式。它允许 C/C++ 编译器使用 PlatformSDK,而不是与 VC 包捆绑的版本。

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

因此,您可以#define在使用SO_EXCLUSIVEADDRUSE. 它应该由 Win2k3 工作和支持。

于 2011-01-24T10:38:21.910 回答