2

我有一个使用 Visual Studio 2012 Update 3 在 Windows 7 机器上编译的程序。我在构建它时选择了“Visual Studio 2012 - Windows XP (v110_xp)”平台工具集。但是,当我尝试在 Windows XP SP3 机器上运行二进制文件时,我收到以下错误:

“无法在动态链接库 WS2_32.DLL 中找到过程入口点 inet_ntop。”

现在,我很确定我知道这个错误意味着什么:这意味着 DLL 加载程序在 WinXP 机器上的 WS2_32.DLL 中找不到 inet_ntop() 函数。知道这只会治疗问题的症状而不是源头,我将 WS2_32.DLL 从 Win7 盒子复制到我在 WinXP 盒子上拥有 EXE 的同一目录中。我通过了该错误,只是将其替换为类似的错误,但这次是指在 MSVCRT.DLL 中找到的函数。

奇怪的是,这次将 MSVCRT.DLL 从 Win7 机器复制到 WinXP 机器并没有让我通过错误。

有人知道我需要做什么才能让二进制文件在 WinXP 上运行吗?如果归根结底,我将在虚拟机中设置一个 WinXP 开发环境,然后从那里进行构建。目前工作量很大,所以我宁愿继续在我的 Win7 机器上进行构建。

谢谢!

4

1 回答 1

1

根据 MSDN inet_ntop(),仅适用于 Windows Vista 及更高版本。

如果您只需要使用 IPv4,则可以使用inet_ntoa(),否则,您可以使用 Winsock 函数WSAAddressToString(),正如它在文档的备注部分中WSAStringToAddress()提到的那样:inet_ntoa()

截屏

于 2013-08-06T06:48:04.297 回答