如何在Microsoft Visual Studio C ++中定位Windows XP

时间:2016-02-27 02:08:23

标签: c++ windows visual-c++ visual-studio-2015

我在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上运行?

2 个答案:

答案 0 :(得分:32)

为了与VS 2015(或VS 2012 / VS 2013)构建兼容Windows XP的EXE,您必须使用v140_xp平台工具集而不是默认的v140平台工具集。

请参阅“项目属性”,“常规”页面:

Property Page

这是因为默认的Platform Toolset使用Windows 8.1 SDK(或者您可以选择加入Windows 10 SDK),这仅支持为Windows Vista或更高版本构建应用程序。当您选择v140_xp平台工具集时,您使用的是Windows 7.1 SDK版本,这是支持定位Windows XP或Windows Server 2003的最新版本。

  

请注意,Visual Studio可以定位Windows XP Service Pack 3或Windows Server 2003 Service Pack 2.C / C ++运行时与旧版Windows不兼容。

如果您在应用程序中使用DirectX,这会产生深远的影响,因为Windows 7.1 SDK和Windows 8 SDK之间有很多变化。有关详细信息,请参阅this post

使用VS 2015,您还需要在“自定义安装”选项中或通过“程序”和“程序”选择Windows XP支持。功能/ Microsoft Visual Studio 2015 /更改... /修改:

Modify

答案 1 :(得分:0)

听起来这个程序在您的开发机器上运行良好(Windows 8.1 + MSVS 2015),但不能在XP机器上运行。

解决方案:您必须包含MSVC运行时以及.exe。

请看这里:Deploying Native Desktop Applications (Visual C++)

在这里:Visual C++ Redistributable for Visual Studio 2015