我有一个使用Visual Studio 2012 Update 3在Windows 7盒上编译的程序。我在构建该程序时选择了“Visual Studio 2012-Windows XP(v110_xp)”平台工具集。但是,当我尝试在Windows XP SP3机器上运行二进制文件时,出现以下错误:
“过程入口点inet_ntop不能位于动态链接库WS2_32.DLL中。”
现在,我非常确定我知道此错误的含义:这意味着DLL加载器无法在WinXP框上的WS2_32.DLL中找到inet_ntop()函数。知道这只会解决问题的症状而不是问题的根源,我将WS2_32.DLL从Win7框中复制到了在WinXP框中装有EXE的相同目录中。我通过了该错误,只是将其替换为类似的错误,但这一次是指在MSVCRT.DLL中找到的函数。
奇怪的是,这次将MSVCRT.DLL从Win7框中复制到WinXP框中并没有使我通过错误。
有人知道我需要做些什么才能在WinXP上工作吗?如果涉及到这一点,我将在虚拟机中设置WinXP开发环境,然后从那里进行构建。此时需要做很多工作,因此我宁愿继续在Win7机器上进行构建。
谢谢!
最佳答案
According to MSDN inet_ntop()
仅适用于Windows Vista和更高版本。
如果只需要使用IPv4,则可以使用 inet_ntoa()
或失败,可以使用WSAAddressToString()
文档的备注部分中提到的Winsock函数 WSAStringToAddress()
和 inet_ntoa()
:
关于c++ - 在带有VS2012/w Update 3的Windows 7上构建的C++程序无法在WinXP SP3上运行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18067092/