Visual Studio 2013 for Targeting XP的Visual C++编译器标志
Visual C++ Compiler Flag for Visual Studio 2013 for Targeting XP
我想用Visual Studio 2013创建一个针对XP环境的C++程序,我知道"项目属性"->"配置"选项卡中的UI选项可以设置"平台工具"机顶盒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中的一些应用程序兼容垫片,这些垫片旨在处理一个宣布对现代Windows版本一无所知的程序。特别是Aero在窗口度量方面的谎言,旨在允许一个古老的程序仍然使用胖窗口边界运行。
CRT也受到影响,与线程和本地化相关的细节相当模糊。当然需要测试。记住支持这样一个古老的操作系统的成本。
最后但同样重要的是,您还需要使用合适的SDK版本。最后一个仍然与XP兼容的是v7.1。如果从命令行生成,则会得到8.1,需要先设置%WindowsSdkDir%环境变量来解决此问题。您需要在头文件中设置目标Windows版本,其中#包含Windows.h,希望是预编译头文件。将_WIN32_WINNT定义为0x501以匹配XP,并避免意外使用XP上不可用的winapi函数。
- Visual Studio 2015:Extern "C" 和 "export" 关键字
- 为cl.exe(Visual Studio代码)指定命令行C++版本
- 试图在visual studio上用C++创建一个桌面应用程序
- 如何在MS Visual Studio 2019中运行QT UI
- 如何使用Visual Studio 2017在C++中为参数化对象数组使用唯一指针
- Visual Studio Code - C++ Debugger 無法啟動
- Visual C++ constexpr Hints
- 为什么它不适用于Visual 2019的原因
- Visual Studio 2019:插入多个C++风格的单行注释
- Visual Studio Code "undefined reference to `WinMain@16'"
- visual在c++中将十进制数转换为二进制数
- Visual studio代码重构似乎不起作用(例如,重命名符号-f2)
- Visual Studio中的函数声明和函数定义问题
- 如何指定我希望我的LIB链接到的DLL文件?-Visual Studio 2019
- Visual C++(VS2017)中用户定义的转换不明确
- Visual C++GC接口如何启用它以及要包含哪个库
- visual是否可以在c++中创建一个接收无限数量相同类型(或至少相当数量)参数的函数
- visual c++,如何获取解决方案目录中的代码
- Visual Studio mkl_link_tool.exe链接错误
- Visual Studio(或任何其他工具)能否将地址解释为调用堆栈(boost上下文)的开头