Visual Studio 2012中用C++实现Windows XP的定位

六月,我们 宣布 使用VisualStudio 2012 C++编译器和库增强了对Windows XP的定位。此功能已包含在Visual Studio 2012 Update 1中。您可以从 在这里 . 本文的目的是提供WindowsXP目标体验、C++运行时支持级别以及与RTM中VisualStudio 2012中默认体验的显著差异。

null

为了以WindowsXP为目标,请在项目的属性页中从默认的v110工具集切换到新引入的V110xP工具集。这个新的平台工具集指向VisualStudio2010中提供的Windows7SDK的重新打包版本,而不是Windows8SDK,但是使用相同的VisualStudio2012编译器。v110uxp工具集还设置了一些有用的默认值,例如用于底层目标的兼容链接器子系统版本。只有使用此平台工具集生成的可执行文件才支持在Windows XP上运行,但这些可执行文件也将在Vista、Windows 7和Windows 8上运行。

图片[1]-Visual Studio 2012中用C++实现Windows XP的定位-yiteyi-C++库

CRT、CONCRT/PPL、STL和MFC的静态和动态链接库已经被更新,以添加对Windows XP和Windows Server 2003的运行时支持。以C++框架为基础的应用程序,以.NETFramework 4为目标,也将运行在WindowsXP和Windows Server 2003上。支持的版本包括用于x86的Windows XP SP3、用于x64的Windows XP SP2以及用于x86和x64的Windows Server 2003 SP2。

图书馆

v110(Vista+)

v110(商店应用程序)

v110×xp(xp/2k3+)

阴极射线管

浓度/PPL

STL公司

MFC公司

ATL公司

C++ AMP

  1. 建筑HLSL 默认情况下,不启用使用v110u xp工具集构建HLSL。要启用HLSL编译,请下载 DirectX SDK(2010年6月) 并手动将项目的VC目录设置为指向此SDK,方式与Visual Studio 2010类似。有关详细信息,请参阅DirectX SDK(2010年6月)下载页的“DirectX SDK不向Visual Studio 2010注册包含/库路径”部分。
  2. 调试DirectX Visual Studio 2012图形调试体验 不支持 以DirectX 9为目标时。
  3. 静态分析 当选择V1XYXP平台工具集时,由于Visual Studio 2012 C++库中的SAL注释和Windows 7 SDK之间的不兼容,静态分析体验被禁用。如果需要静态分析,我们建议您将解决方案切换到普通的v110工具集,执行静态分析,然后切换回v110uxp。
  4. 远程调试 Visual Studio 2012的远程工具不支持在XP客户端上进行远程调试。当需要在Windows XP上进行调试时,建议 使用调试器 用于本地或远程调试的较旧版本的VisualStudio,如VisualStudio2010。这与VisualStudio2012 RTM的WindowsVista体验是一致的,后者是运行时目标,但不是远程调试目标。
  5. 进程状态API 与Visual Studio 2012 RTM一样,应用程序以Windows Vista及以下版本为目标,同时依赖于 进程状态API 必须设置  PSAPIu VERSION宏设置为1。

可以构建已切换到v110u xp工具集的Visual Studio 2012解决方案和项目 从命令行 使用MSBuild或DEVENV而不执行其他步骤。

但是,如果您希望直接使用CL和Link,则需要额外的步骤。请注意,下面的步骤可以通过创建批处理脚本实现自动化。

  1. 设置路径和环境变量 对于Visual Studio 2012命令行生成。
  2. 设置所需的SDK路径和编译器 旗帜 使用以下命令:

    set INCLUDE=%%ProgramFiles(x86)%%Microsoft SDKsWindows7.1AInclude;%%包括%% 设置路径=%%ProgramFiles(x86)%%Microsoft SDKsWindows7.1ABin;%%路径%% set LIB=%%ProgramFiles(x86)%%Microsoft SDKsWindows7.1ALib;%%库%% 使用V110u SDK71设置CL=/Du;%%氯%%

    以x64为目标时,按如下所示设置lib路径: set LIB=%%ProgramFiles(x86)%%Microsoft SDKsWindows7.1ALibx64;%%库%%

  3. 指定正确的 子系统和子系统版本 基于您正在构建的应用程序类型的链接器。以x86版本的Windows XP为目标的应用程序必须指定子系统版本5.01,以x64为目标的应用程序必须指定版本5.02。

    对于x86控制台应用程序: set LINK=/SUBSYSTEM:控制台,5.01%%LINK%%

    对于x64控制台应用程序: set LINK=/SUBSYSTEM:控制台,5.02%%LINK%%

  4. 在命令提示符下执行CL和Link。

一如既往,我们希望听到您的反馈。请提交错误到 Visual Studio连接 ,并提出建议 Visual Studio用户语音 .

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享