Visual Studio 2022 Community 不完全攻略

software 投稿 6000 0 评论

0. 前言

Visual Studio 2022 Community 不完全攻略
有问题或者意见欢迎评论 !

1. 下载&安装

下载最新版 (目前是 2022 , 一定要去官网下载 ! )
https://visualstudio.microsoft.com/vs/community/
下载完打开 Visual Studio Installer.

  • 在安装页面, 左下角可以修改安装位置 (下载缓存可以不保留, 但必须要和本体放在不同的文件夹中).

  • 编写基本的 C++ 程序只需勾选 使用 C++ 的桌面开发 这个工作负荷.

  • 语言包自行选择. 建议使用英文界面强迫自己学英语.

  • 一般都会选择黑暗模式.

  • 安装完重启电脑.

  • 使用 VS 2022 需要注册一个微软账号.

2. 认识 Visual Studio

2.1. 创建一个空项目

勾选 Place Solution and Project in the same directory ( VS 的目录结构比较混乱, 稍后会介绍更改的方式).
如果打开不是 Start Window 而是之前打开的项目, 可以进入 Tools => Environment => General, 在 On startup, open: 选项中选择 Start window.

2.2. 选项卡

既可以放大缩小又可以改变位置, 还可以固定或浮动.
一般来说 Solution Explorer 是一个比较重要的选项卡, 如果意外关闭可以在上方的菜单栏重新打开: View => Solution Explore . 你也可以使用快捷键 Ctrl+Alt+L .

2.3. Solution Configuration & Platform

Release 模式会自动优化你写的代码, Debug 便于调试.
Release 模式生成的 .exe 文件可以不依赖其他文件在别人的电脑上直接运行, Debug 不行.
x64 和 x86 分别代表在 64 位和 32 位平台下编译运行.

2.3. 两个绿箭头和一个小火苗

  1. Compile --- 把一个个 .cpp 文件编译成电脑读得懂的二进制文件 - Ctrl+F7

  2. Build --- 把一个个二进制文件 link 在一起生成 .exe 可执行文件 - Ctrl+Shift+B

代码的语法错误在 Compile 阶段就能被 Compiler 识别, 但一些 linker 错误要到 Build 阶段会被 linker 识别.
当然, 更多的错误只能靠你自己识别.

  • 实心的绿箭头是 Compile + Build + Run(运行生成的 .exe 可执行文件) - F5.

  • 空心的绿箭头是跳过一个个调式断点的 Compile + Build + Run(运行生成的 .exe 可执行文件), 这里还没讲到调试, 所有不用深究 - Ctrl+F5.

  • 红色的小火苗是 Hot Reload, 简单地说就是在不终止当前的运行进程下, 重新 Compile + Build. 例如在一个循环中, 已经循环了两次, 这时你修改了循环中的部分代码, 然后 Hot Reload, 下一次循环就会以你改完的代码运行.

3. 界面设置

3.1. 滚动条

可以更改滚动条的显示方式.

3.2. 字体

可以更改字体样式, 大小和颜色.

3.3. 主题

4. Hello World !

右键 Solution Explorer 下的 Source Files, Add => New Item...
选择 C++ File, 然后重命名.
注意: 你要创建什么类型的文件就选择什么类型, 不要创建了一个 C++ File 然后在外部改后缀名, 这会导致 linker 错误.
在编写程序的时候, 要注意如下一些快捷键:

  1. 代码自动补全: Tab

  2. 注释 / 取消注释选中行: Ctrl+K+C / Ctrl+K+U

  3. 多行编辑: Ctrl+Alt+LeftClick

  4. 变量 / 对象 / 类 / ... 重命名: Ctrl+R+R

5. 快捷键设置

Tools => Options => Enviroment => KeyBoard
找到想要做的操作, 在键盘上按出想要基于的快捷键, 查看有没有冲突.

6. 代码风格设置

    Tools => Options => Text Editor => C/C++ => General
    里面有若干设置选项, 其中可能 Automatic brace completion 比较重要 (如果喜欢所有右括号都手动打而不是自动补全的话可以考虑关闭这个选项).

  1. 用来设置 Tab 键是打一个 '\t' 还是 n 个 ' '. 我个人习惯四个空格.

  2. 这里面有很多非常重要的设置选项. 其中关于 IntelliSense 的设置直接关系到自动代码补全. 更改前务必查阅足够多的资料, 并且先保存好先前的设置.

  3. General: 更改注释格式 / 注释生成方式.
    Formatting: 各种格式自定义设置, 比如 { 跟在 函数名同行还是新一行.

  4. VS 2022 新增的 inline hints 设置.

7. 文件目录

7.1. 几个文件的说明

正常情况下当前文件夹内会出现这样几个文件:

  • .vs 文件夹(隐藏)

  • x64 文件夹

  • Project1.sln

  • Project1.vcxproj

  • Project1.vcxproj.filters

  • Project1.vcxproj.user

  • Source.cpp

    .sln 文件是一个 Visual Studio project 的入口. 当你想打开一个别人的 project , 不要从 Start Window 打开项目文件夹, 而应该直接运行 .sln 文件.

  1. MSBuild is the default project system in Visual Studio; when you choose File > New Project in Visual C++ you're creating an MSBuild project whose settings are stored in an XML project file that has the extension .vcxproj.

  2. 我们在工程中将 Source.cpp 建立在一个叫 Source Files 的文件夹内, 但是当前的目录里没有这个文件夹. 这是因为这些文件夹其实是虚拟的 Filter (筛选器), 现实中所有文件都被堆在一起. 这其实不是一个很好的文件管理方式. 哪些文件归于哪个 filter 的信息都储存在 .filters 文件内部. 所以如果你的项目不依赖 filter, 开源时可以忽略 .filter 文件.

  3. .user 文件直接参考官方文档就行了, 储存的是一些断点信息.

  4. .vs 文件夹内部储存了 template bar information 以及一些其他内容, 这些都不需要被加入 Source Control.

7.2. 更好的文件管理

这里主要分为两部分, 代码文件的管理和生成文件的管理.
所有代码文件都堆在 .filter 文件夹内并不整洁.
在 Solution Explorer 内点击 Show All Files (如果看不到请拖大选项卡), 显示文件夹内确实的情况.
在空白部分右键 => Add , 添加两个文件夹: header 和 source 分别存放头文件和源文件.
右键 source 文件夹 => Add => C++ File. 这样就在 source 文件夹内部添加了一个 .cpp 文件. 你也可以在别的地方新建然后拖动进去.
对于生成文件的管理, 右键 Solution Explorer 中的项目名 => Properties => Output Directory 改为: $(SolutionDir)\bin\$(Platform)\$(Configuration)\ ; Intermediate Directory 改为: $(SolutionDir)\bin\intermediate\$(Platform)\$(Configuration)\ . 这样改动, 生成的中间文件和可执行文件就会依据运行环境不同区分开.

8. 调试

8.1. 添加断点

断点顾名思义就是程序运行到这行会停下来 (还没执行这行). 你可以在多个地方添加断点.

8.2. Step into & Step Over

8.3. 在断点间跳跃

当到达一个断点程序暂停后, 再按 F5 就会跳到下一个可能到达的断点 --- 没有后续可能到达的断点就直接运行完程序.

8.4. 调试看什么 ?

对于指针变量储存的数组地址, Locals 窗口只会显示指针所指唯一元素的地址. 解决方案是 Debug => Windows => Watch 1/2/3/4 打开一个 Watch 窗口, 然后双击 Add item to watch 输入诸如 ptr, 10 , 就能看到 ptr 所指的 10 个元素.

9. 对 C 库函数的兼容问题

scanf_s() , strcpy_s() .
如果这是一个开源项目, 可能有别的编译器参与, 就在 Solution Explorer 中右键项目名 => Properties => C/C++ => Preprocessor, 在 Preprocessor Definitions 中添加一条 _CRT_SECURE_NO_WARNINGS . 这样 (仅在) 当前这个项目中允许了使用原生的 C 库函数.

10. <bits/stdc++.h>

10.1. C++ 标准 & 宏变量 __cplusplus

在 C++ 中定义了 __cplusplus 这宏变量表示当前的 C++ 标准.
在随便一个地方打 __cplusplus 然后把鼠标移上去, 会跳出 Expands to 199711L 这个提示.
在 Solution Explorer 中右键项目名 => Properties => General . 这里面的 C++ Language Standard 可以选择用不同的标准编写 C++ 程序. 但是无论切换到什么标准, __cplusplus 总是 Expands to 199711L . 用微软自己的话说:

改不改很多时候都没什么差别, 但是 C++ 17 和 20 弃用了若干标准库, 导致如果 __cpluscplus 不扩展到正确数值, <bits/stdc++.h> 会报错.
解决方法如下:
在 Solution Explorer 中右键项目名 => Properties => C/C++ => Command Line , 在 Additional Options 中 添加一句: /Zc:__cplusplus , 确定即可.

10.2. 添加 bits/stdc++.h

bits/stdc++.h
随便 inlcude 一个标准库头文件, 鼠标点一下这个头文件, 按 F12 Go To Document, 右键右上角弹出的 tab 标签, 选择 Open Containing Folder . 在这个文件夹内新建一个 bits 文件夹, 再把下载好的 bits/stdc++.h 扔进去, 就大功告成了.

编程学习分享 » Visual Studio 2022 Community 不完全攻略

赞 (0) or 分享 (0)
游客 发表我的评论   换个身份
取消评论

表情
(0)个小伙伴在吐槽

高效,专业,符合SEO

联系我们