vs 2019 c++ 兼容 xp
按照如下步骤安装平台工具集 visual studio 2017 - windows xp(v141_xp)
- 系统
添加和删除程序
- 搜索 2019
- 选择修改程序, 进入 visual studio installer
- 修改⇒单个组件⇒搜索 xp
- 编译器、生成工具和运行时⇒勾选 对 vs2017(v141)工具的 c++ windows xp支持
vs2019 静态链接
属性⇒ c/c++ ⇒代码生成⇒运行库
展示了几种链接方式
- 多线程(/mt) release 静态链接
- 多线程调试(/mtd)
- 多线程DLL(/md)
- 多线程DLL调试(/mdd)
vs2019 c++ 语言版本
属性⇒ c/c++ ⇒语言⇒c++语言标准
可以使用宏 __cpluscplus
输出目前正在使用的 c++ 版本, 在 vs 中该宏的输出和正在使用的 c++ 版本及 /Zc:__plusplus
开关有关。
/Zc:__cplusplus | /std:c++ | __cplusplus |
---|---|---|
Zc:__cplusplus | std:c++14 默认 | 20142L |
Zc:__cplusplus | std:c++17 | 201703L |
Zc:__cplusplus | std:c++latest | 201704L |
禁用 | 任何值 | 199711L |
未指定 | 任何值 | 199711L |
不支持 98, 03, 11 的切换。_MSC_VER
_MSC_LANG
属性⇒ c/c++ ⇒语言⇒命令行⇒其他选项
可以修改 zc 和 std 开关
C++ 版本 | 描述 |
---|---|
C++98 (ISO/IEC 14882:1998) | C++ 的第一个版本于 1998 年 10 月发布。 |
C++03 (ISO/IEC 14882:2003) | 在这个版本的 C++ 中,值初始化是在 2003 年 2 月引入的。 |
C++11 | 它于 2011 年 8 月发布。这个 C++ 修订版引入了 Lambda 表达式、委托构造函数、统一初始化语法、自动类型推导、nullptr 、decltype 、Rvalue References 等 |
C++14 | 它于 2014 年 8 月发布。此版本中添加的功能包括多态 lambda、数字分隔符、通用 lambda 捕获、变量模板、二进制整数文字、引用字符串等。 |
C++17 | 它于 2017 年 12 月发布。它引入了折叠表达式、十六进制浮点文字、u8 字符文字、带有初始化程序的选择语句、内联变量等。 |
C++20 | 于 2020 年 12 月发布。 |
标准 | __cplusplus 输出 |
---|---|
C++ 前 C++98 | 1 |
C++98 | 199711L |
c++98+tr1 | 这个不能勾选,这个会被标记为 C++98 |
c++11 | 20103L |
c++14 | 201402L |
c++17 | 201703L |
版本测试程序
#include<iostream>
int main() {
if (__cplusplus == 201703L)
std::cout << "C++17" << endl;
else if (__cplusplus == 201402L)
std::cout << "C++14" << endl;
else if (__cplusplus == 201103L)
std::cout << "C++11" << endl;
else if (__cplusplus == 199711L)
std::cout << "C++98" << endl;
else
std::cout << "pre-standard C++" << endl;
}