我有一个使用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()函数。知道这只会处理问题的症状而不是源代码,我将Win2框中的WS2_32.DLL复制到WinXP框中的EXE目录中。我通过了这个错误,只是将它替换为类似的错误,但这次是指在MSVCRT.DLL中找到的函数。
奇怪的是,将MSVCRT.DLL从Win7框复制到WinXP框并没有让我这次传递错误。
有人知道我需要做什么让二进制文件在WinXP上运行吗?如果归结为它,我将在虚拟机中设置WinXP开发环境,并从那里开始构建。这点上做了很多工作,所以我宁愿继续在我的Win7盒子上进行构建。
谢谢!
答案 0 :(得分:1)
According to MSDN inet_ntop()
仅适用于Windows Vista及更高版本。
如果您只需要使用IPv4,可以使用inet_ntoa()
,或者如果失败,您可以使用Winsock函数WSAAddressToString()
和WSAStringToAddress()
作为它在inet_ntoa()
文档的备注部分中提及: