参见英文答案 >
MSVCP140.dll missing4个
我在Windows 8.1上使用Microsoft Visual Studio 2015.我想编译一个针对Windows XP的程序.我已经在谷歌和其他类似的问题上查了一下,但都没有帮助.在解决方案设置中,目标平台工具集设置为Windows XP,但目标平台版本中没有Windows XP选项.
我确实阅读了 https://msdn.microsoft.com/en-us/library/windows/desktop/aa383745(v=vs.85).aspx(使用Windows标题)并将这些行添加到我的程序中:
我在Windows 8.1上使用Microsoft Visual Studio 2015.我想编译一个针对Windows XP的程序.我已经在谷歌和其他类似的问题上查了一下,但都没有帮助.在解决方案设置中,目标平台工具集设置为Windows XP,但目标平台版本中没有Windows XP选项.
我确实阅读了 https://msdn.microsoft.com/en-us/library/windows/desktop/aa383745(v=vs.85).aspx(使用Windows标题)并将这些行添加到我的程序中:
#define WINVER _WIN32_WINNT_WINXP #define _WIN32_WINNT _WIN32_WINNT_WINXP #define NTDDI_VERSION NTDDI_WINXP
但它仍然无效.它说它找不到“MSVCP140.dll”.我得到这个DLL后,开始抱怨无法找到“VC140.dll”.之后是“ucrtbased.dll”,最后是“api-ms-win-core-string-11-1-0.dll”,我甚至没有在我的Windows 8.1计算机中使用它.该程序可以在Windows 8.1上运行,但不能在Windows XP上运行.
如何使程序在Windows XP上运行?
为了使用VS 2015(或VS 2012 / VS 2013)构建与Windows XP兼容的EXE,您必须使用v140_xp平台工具集而不是默认的v140平台工具集.
原文链接:https://www.f2er.com/windows/364876.html这是因为默认的Platform Toolset使用Windows 8.1 SDK(或者您可以选择加入Windows 10 SDK),这仅支持为Windows Vista或更高版本构建应用程序.当您选择v140_xp平台工具集时,您使用的是Windows 7.1 SDK的一个版本,它是支持定位Windows XP或Windows Server 2003的最新版本.
Note that Visual Studio can target Windows XP Service Pack 3 or Windows Server 2003 Service Pack 2. The C/C++ Runtime is not compatible with older versions of Windows.
如果您在应用程序中使用DirectX,这会产生深远的影响,因为Windows 7.1 SDK和Windows 8 SDK之间有很多变化.详情请见this post.
使用VS 2015,您还需要在“自定义安装”选项中或通过“程序”和“程序”选择Windows XP支持.功能/ Microsoft Visual Studio 2015 /更改… /修改: