# **下载**
[Visual Studio Code - Code Editing. Redefined](https://code.visualstudio.com/)

便携免安装版选择zip

# 解决visual studio code (vscode)安装时没有选择安装路径问题
首先进入注册表win+r键,输入regedit
进入注册表之后,打开路径:计算机\HKEY\_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\
然后删除下图选中的那一项

代码初始出现的这一行是调取代码AI的github的Copilot [Copilot 快速入门](https://code.visualstudio.com/docs/getstarted/copilot-quickstart)
### **vscode 里 按 `CTR+N` 新建文件 点击`选择语言然后选择c++`**

# **安装编译环境**
## **1.编译器1:MinGW**
1.[MinGW-w64 - 适用于 32 位和 64 位 Windows - 浏览针对 Win64/Personal Builds/mingw-builds/8.1.0/threads-posix/seh 的 /工具链,SourceForge.net](https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Personal%20Builds/mingw-builds/8.1.0/threads-posix/seh/)
2.https://pan.baidu.com/s/1rrjwtKtPkyZwnLKPq08Tnw?pwd=ming
3.[github.com/niXman/mingw-builds-binaries/releases](https://github.com/niXman/mingw-builds-binaries/releases)

`ucrt` 和 `msvcrt` 都是与 Microsoft C 运行时库相关的组件,但它们有一些重要的区别。了解这些差异有助于你在下载和安装程序时做出正确选择。
posix:可移植标准库(跨平台开发用它):
如果要编译跨平台的项目下载带posix的,如果开发只在windows商的程序下载带`ucrt` 和 `msvcrt`
### 1.**ucrt (Universal C Runtime)**
* **简介**:`ucrt`是 Microsoft 引入的一种现代 C 运行时库,旨在支持 Windows 10 及更新版本的操作系统。它包含了所有标准 C 运行时功能,并且与 Windows 10、Windows Server 2016 及更高版本兼容。
* **功能**:`ucrt`提供了包括内存管理、文件操作、数学函数、字符串操作等在内的基础 C 库功能。它是 Windows 平台上开发 C/C++ 应用程序的核心部分。
* **使用场景**: 如果你的应用程序需要在 Windows 10 或更高版本的系统上运行,或者你正在开发现代应用程序,那么应该使用`ucrt`。
* **版本**:`ucrt`是在较新的 Windows SDK 中引入的,并且随着 Windows 更新而不断改进。
### 2.**msvcrt (Microsoft C Runtime Library)**
* **简介**:`msvcrt`是 Microsoft 早期的 C 运行时库,最初用于支持较旧的 Windows 版本(如 Windows XP 和 Windows 7)。它与 Windows 10 兼容,但它属于旧版的 C 运行时。
* **功能**:`msvcrt`提供了基本的 C 运行时支持,包含了 C 标准库函数,如字符串处理、内存分配、输入输出等。它的功能与`ucrt`类似,但它是一个更老的版本。
* **使用场景**: 如果你需要支持老旧的操作系统(如 Windows XP 或早期的 Windows 7),你可能需要依赖`msvcrt`。但是,对于新的开发,微软建议使用`ucrt`。
* **版本**:`msvcrt`是 Windows 的早期 C 运行时库,很多经典的 C 应用程序依赖于它。
### 主要区别
* **兼容性**:`ucrt`是为了与 Windows 10 及更高版本的操作系统兼容而设计的,而`msvcrt`更偏向于早期版本的 Windows。
* **功能和优化**:`ucrt`在性能和现代化方面有显著改进,尤其是在内存管理和线程支持上,比`msvcrt`更加高效和稳定。
* **系统支持**:`ucrt`需要较新的操作系统(如 Windows 10),而`msvcrt`仍然支持旧版操作系统(如 Windows XP)。
### 总结
* **使用`ucrt`**: 如果你正在开发新的应用程序或者目标系统是 Windows 10 或更高版本,建议使用`ucrt`,它是更现代和优化的版本。
### **配置**
将下载好的mvc解压到指定的目录然后将该路径加入环境变量`E:\code_project\mingw64\bin`
win+r 和cmd 打开命令窗口输入 `gcc -v`验证是否生效
vscode 按快捷键 ctrl+shift+p 调出 ,然后搜索框输入c/c++,然后找到c/c++:编辑配置(UI)




同样选择生成c/c++:gcc.exe生成活动文件
此时生成一个和文件同名的exe文件
然后`ctrl+shift+``新建终端:执行这个生成的exe文件


## **2.编译器2:官方的Microsoft.VisualStudio.2022.BuildTools**
[为 Microsoft C++ 配置 VS Code](https://code.visualstudio.com/docs/cpp/config-msvc)
1. 若要安装 MSVC,请打开 VS Code 终端(CTRL + `)并在以下命令中粘贴:
~~~
winget install Microsoft.VisualStudio.2022.BuildTools --force --override "--wait --passive --add Microsoft.VisualStudio.Workload.VCTools --add Microsoft.VisualStudio.Component.VC.Tools.x86.x64 --add Microsoft.VisualStudio.Component.Windows10SDK.20348"
~~~
>[danger]**注意**:可以使用 Visual Studio 生成工具中的 C++ 工具集以及 Visual Studio Code 以编译、生成并验证任何 C++ 代码库,前提是同时具有有效的 Visual Studio 许可证(社区版、专业版或企业版),且正积极将其用于开发该 C++ 代码库。
[使用 Winget 安装 Visual Studio BuildTools 2022 - wingetCollections](https://winget.ragerworks.com/package/Microsoft.VisualStudio.2022.BuildTools)
### **验证编译器安装**
1. 通过在 Windows “开始”菜单中键入“`developer`”打开**Developer Command Prompt for VS**。
通过在Developer Command Prompt for VS中键入`cl`来检查 MSVC 安装。你应该会看到包含版本和基本使用说明的版权消息。
**注意**:要从命令行或 VS Code 使用 MSVC,必须从**Developer Command Prompt for VS**运行。普通 shell (例如PowerShell、Bash或 Windows 命令提示符)未设置必要的路径环境变量。
使用:
### 最直接的方法
打开developer Command Prompt for VS 2022,待加载完成后输入code,每次都要这样,有点麻烦
### 更改快捷方式
在桌面上找到vscode的快捷方式,右键,点击属性
把“目标”改为
~~~bat
C:\Windows\System32\cmd.exe /k ""C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\Common7\Tools\VsDevCmd.bat" && "你的安装路径"
~~~
就可以了
- Visual Studio 2022安装到非C盘
- vscode轻量编辑器
- c#(csharp)
- .net平台区别
- 常用单词
- 关键字
- 操作符(运算符)
- 标识符(命名规范)
- 开始
- 变量
- 常量
- 数据类型
- 值类型
- 变量数据类型
- 枚举类型enum(常量集合)
- 结构类型struct(结构体)
- 元组类型
- 可null类型(T?)
- 引用类型
- 数组(array)
- 集合(List)
- 内置引用类型
- object
- string
- Dynamic(动态类型)
- delegate委托(代理)类型
- 自定义引用类型
- 接口(interface)
- 类class
- record(定义一个引用类型)
- 指针类型(仅用于非安全代码)
- get和set访问器
- delegate委托
- delegate实现发布订阅与事件
- 类型转换
- 合并操作符??
- 类相关
- Partial 部分类
- 类定义以及访问修饰符(封装)
- abstract抽象类与sealed密封类
- virtual虚方法
- 接口interface
- C# 预处理器指令
- C#技术栈
- 判断(流程控制)与三元运算
- if
- switch
- 三元运算
- 循环
- while 循环
- for循环
- foreach循环
- do...while 循环
- 文件操作
- 其他
- 多开
- c++
- 基本语法
- c++数据类型
- 变量和常量
- 运算符
- 分支结构(判断)
- 循环
- c++指针
- 函数
- 内置函数
