繁体   English   中英

用于针对XP的Visual Studio 2013的Visual C ++编译器标志

[英]Visual C++ Compiler Flag for Visual Studio 2013 for Targeting XP

我想用针对XP环境的Visual Studio 2013创建一个C ++程序,我知道Project Properties - > Configuration选项卡中的UI选项来设置Platform Tool set top Windows v120_xp,我想用命令实现它行选项。 怎么做。

对于visual studio 2012,我知道这个选项

设置CL = / D_USING_V110_SDK71 _;%CL%

我正在寻找类似的选项是Visual Studio 2013.你能帮忙吗?

_USING_V110_SDK71_宏与构建程序与XP兼容无关,它只是一个副作用。 基本选项是链接器选项/ SUBSYSTEM 请注意此选项如何指定主要和次要子系统版本号。 如果将此选项设置为5,1,则程序只能在XP上运行。 从VS2012开始,默认设置为6,0,即当前Windows版本的版本号。 运行此类程序需要Vista或更高版本。

这实际上是一个大问题,降级版本号打开Windows中的一些app-compat垫片,旨在处理一个程序宣布它对现代Windows版本一无所知。 特别是Aero关于窗口指标的方式,旨在允许古代程序仍然使用胖窗口边界运行。

CRT也受到影响,与线程和本地化相关的相当模糊的细节。 当然需要进行测试。 保持支持这样一个古老的操作系统的成本。

最后但同样重要的是,您还需要使用适当的SDK版本。 最后一个仍与XP兼容的是v7.1。 如果从命令行构建然后获得8.1,则需要先通过设置%WindowsSdkDir%环境变量来解决此问题。 并且您需要在#include Windows.h的标头中设置目标Windows版本,希望是预编译的标头。 将_WIN32_WINNT定义为0x501以匹配XP,并避免意外使用XP上没有的winapi函数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM