Visual Studio(VS)的基本使用

2023-10-30

Visual Studio(VS)的基本使用

本文中1-10章节是我观看黄强老师视频所记录的笔记,详细内容请观看视频:30分钟学会Visual Studio 2017

1. VS下载

  • VS官方下载地址:https://visualstudio.microsoft.com/zh-hans/

  • 下载完成得到一个在线安装的小工具,点击运行。

  • 勾选自己开发所需组件进行安装(时间较长)。

  • 在线安装的小工具可以选择删除。

  • 安装完成后可通过文件 - 新建 - 项目 - 联机 - 模板,下载所需的其他版块。

2. 新建解决方案、项目、编译、执行

  • 文件 - 新建 - 项目 - Visual C++ - Win32控制台应用程序/空项目,输入项目名称和解决方案名称即可。

  • 一个解决方案(以 .sln 结尾,即solution)可包含多个项目,在视图打开解决方案资源管理器,选中解决方案,右键单击可添加 - 新建项目。在解决方案属性页可以选择启动项目,在单启动项目模式下,要启动的项目名会以加粗显示,可选中项目名,右键单击设为启动项目来更改当前要启动的项目。

  • 编译只编译 .cpp (C plus plus)文件,不编译头文件。

  • 选中项目名,右键单击生成,则仅编译链接生成当前项目的 .exe 文件;选中解决方案,右键单击生成解决方案会生成所有的项目。

3. VS窗口布局

  • 打开视图 - 属性窗口,可查看当前窗口的属性。例:当选中项目或解决方案时,可查看其基本属性。

  • 打开视图 - 类视图,每个项目下会出现全局函数和变量的名字以及所有的成员属性和方法,单击名字可快速定位(非常有用!!!)。

  • 视图 - 其他窗口 - 资源视图。任何图像、字符串值以及程序所需要的其它非编程部件都可以作为资源使用。

  • 窗口 - 重置窗口布局一键还原默认布局。此外,VS2017还支持保存自己喜欢的视图(VS2013未找到该功能)。

4. 设置VS字体、颜色、行号等

  • 工具 - 选项 - 环境 - 字体和颜色
  • 工具 - 选项 - 文本编辑器 - C/C++,勾选行号

5. 项目中新建文件、筛选器、文件夹

  • 新建 .cpp 和 .h (header)文件。选中源文件文件夹,右键单击添加 - 新建项,添加 .cpp 文件;选中头文件文件夹,右键单击添加 - 新建项,添加 .h 文件。在哪个文件夹中添加哪种类型的文件无关紧要,这仅仅是为了便于我们阅读,在头文件资源文件文件夹中添加 .cpp 文件依然可以正常运行。

  • 添加现有项。选中项目名,右键单击在文件资源管理器中打开文件夹,将现有项文件放到该目录下,即 .vcxprojMicrosoft Visual Studio Visual C++ Project)所在目录。最后添加 - 现有项即可。

  • 新建类。选中项目名,右键单击添加 - 类可快速添加类的 .h.cpp 文件。若勾选内联则只添加 .h 文件,即类的声明和定义放在同一个文件中。

  • VS会自动创建3个筛选器(filter,图标左下角带有漏斗形状),即头文件、源文件、资源文件。筛选器并不对应真实的物理存储结构,仅是逻辑上的分类,便于阅读而已。例:VS中显示某项目有三个筛选器,但是在工程目录(选中项目名,右键单击在文件资源管理器中打开文件夹)下,我们会发现并没有源文件、头文件、资源文件等文件夹。

  • 新建筛选器。选中项目名,右键单击添加 - 新建筛选器,可将 .h.cpp 等文件放到新的筛选器中。创建筛选器后,工程目录下的 .vcxproj.filters 文件用来记录该工程的筛选器。可用记事本打开 .vcxproj.filters 文件查看详细内容。

  • 如果我们希望VS中看到的项目分类与真实目录一致,则应选中项目名,单击项目 - 显示所有文件,此时新建筛选器会变成新建文件夹,然后选中项目名,右键单击添加 - 新建文件夹即可。

    注: 此时若项目文件夹 - 文件1想include项目文件夹 - 子文件夹 - 文件2,则必须使用#include"子文件夹/文件2",使用#include"文件2"会报错No such file or directory

6. VS设置断点等调试技巧

  • 在代码左侧一栏单击设置断点,再次点击取消断点。程序执行到断点中断,不会执行当前行。调试时拖动黄色箭头可更改程序接下来的执行位置。
  • F5:开始调试/跳转到下一断点。
  • F9:添加/删除断点。
  • F10:逐过程(快,调用函数时不会进入函数体)。
  • F11:逐语句(慢,一步一步地详细执行,追根究底)。
  • 在断点处右键单击条件可以根据判断条件来中断程序。
  • 使用调试 - 窗口 - 断点调用断点窗口,单击某断点可快速定位。
  • 使用调试 - 窗口 - 监视调用监视窗口,可在调试时随时输入变量名称和值,利于调试。另外,调试 - 窗口 - 自动窗口调试 - 窗口 - 局部变量也都很实用。

7. 代码添加书签、快速查找、定位

  • 书签的作用:便于在不同程序文件之间切换。
  • 添加/删除书签:Ctrl +K + K
  • 上一书签:Ctrl +K + P(P = positive)
  • 下一书签:Ctrl +K + N(N = negative)
  • 选中某个词,Ctrl +F3查找下一个,Shift +F3查找上一个。选中某个词后,单击右键的查看定义转到定义转到声明查找所有引用功能都非常实用。
  • 简单查找/替换:Ctrl +F
  • 快速查找/替换:Ctrl + Shift + F,可在视图 - 查找结果调用查找结果窗口(共2个)。

8. Debug和Release项目输出

  • Debug称为调试版本,包含调试信息,不作任何优化。在解决方案/Debug目录下除了 .exe (executable file )和 .dll (Dynamic Link Library)文件外,还有 .pdb (Program Debug)文件记录代码断点等调试信息。

  • Release称为发布版本,不包含调试信息,并且对代码做了优化,使得程序在代码大小和速度上都是最优的,Release目录下生成 .exe.dll 文件。

  • 更改项目输出名称和目录

    • 项目属性页 - 配置属性 - 常规在可更改输出目录目标文件名目标文件拓展名等。
    • 项目属性页 - 配置属性 - 链接器 - 常规 - 输出文件可更改输出文件目录。

    注:当在以上两个位置同时更改时,以第二个为准。

  • 无论在Debug还是Release模式下,都可设置 .pdb 文件的输出与否,将项目属性页 - 配置属性 - 链接器 - 调试 - 生成调试信息设置为则输出,则不输出。

9. VS设置包含头文件目录和库目录

  • VS使用第三方 dll (动态链接库),一般需要做以下三件事:

    • 指定 .h 头文件所在目录。(附加包含目录,项目属性页 - 配置属性 - C/C++ - 常规 - 附加包含目录
    • 制定 .lib 文件所在目录。(附加库目录,项目属性页 - 配置属性 - 链接器 - 常规 - 附加库目录
    • 指定需要使用到的 .lib 文件。(附加依赖项,项目属性页 - 配置属性 - 链接器 - 输入 - 附加依赖项

    在第三步中,也可以通过代码指定。例:#pragma comment(lib,"ws2_32.lib")

10. VS快速开发常用技巧

  • 注释

    • 注释:Ctrl + K + C(C = comment)
    • 取消注释:Ctrl + K + U(U = uncomment)
  • 行编辑

    当光标停在某一行(不用选中该行):

    • 复制整行:Ctrl + C
    • 剪切整行:Ctrl + X
    • 粘贴整行:Ctrl + V
    • 删除整行:Ctrl + L
    • 下移整行:Shift + Alt + T
  • 格式化代码

    • 格式化部分代码:选中代码,然后编辑 - 高级 - 设置选定内容的格式(快捷键:Ctrl + K + F
    • 格式化当前文档代码:编辑 - 高级 - 设置文档的格式(快捷键:Ctrl + K + D
  • 跳转到指定行号

    • Ctrl + G
    • 双击VS最下方的行/列/字符
  • 匹配括号

    当代码很长时,将光标置于括号旁,使用Ctrl + ]可以快速定位与当前括号相匹配的另一个括号。


VS官方在线帮助文档:https://visualstudio.microsoft.com/zh-hans/vs/getting-started/


11. 其他常用快捷键

  • 折叠代码

    • Ctrl + M + O:折叠所有方法

    • Ctrl + M+ M:折叠/展开当前方法

    • Ctrl + M + L:展开所有方法

    • 折叠任意连续代码段(折叠≠注释,依然会执行)

      #pragma region 折叠name
      ......
      #pragma endregion 折叠注释
      

      显示效果为:折叠name 折叠注释

  • 调用智能提示
    Ctrl + JAlt +

  • 视图 - 代码定义窗口,然后选中代码,可查看详细定义

  • 使用任务管理器

    假如我们开发的项目很大,在项目中有些代码没有完成,我们可以做一下标记,便于将来查找。

    创建方法:在要标记的地方输入://TODO:内容

    使用方法:视图 - 任务列表 - 注释

  • 返回上一视图:Ctrl + -

    返回下一视图:Ctrl + Shift + -

  • 将选中的全部变小写:Ctrl + U

    将选中的全部变大写:Ctrl + Shift + U

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Visual Studio(VS)的基本使用 的相关文章

  • 关于setConnectTimeout和setReadTimeout的问题

    1 问题描述 这几天测试重构后的下载框架 发现在下载过程中如果网络中断或网络较差 个别应用的下载就会阻塞卡住 一直卡在 正在下载 xx 2 问题排查和定位 思考 网络差不应该报网络异常的错误或者直接抛timeout异常吗 所以马上去检查Ht
  • 我所不知道的TCP Socket编程(一)-简介+创建套接字

    Socket编程 套接字 Socket 连接起了数字世界 定义 源IP地址和目的IP地址以及源端口号和目的端口号的组合称为套接字 其用于标识客户端请求的服务器和服务 它是网络通信过程中端点的抽象表示 包含进行网络通信必需的五种信息 连接使用
  • MMU地址映射过程详细

    ARMv6 MMU简述 1 MMU由协处理器CP15控制 2 MMU功能 地址映射 VA gt PA 内存访问权限控制 3 虚拟地址到物理地址的转换过程 Micro TLB gt Main TLB gt Page Table Walk 址映
  • DVWA平台漏洞测试与源码分析(一)SQL注入

    DVWA平台是初学网络安全者了解十大漏洞的有效途径 此平台收集了当前威胁网络安全的最常见的十大漏洞 并且为各位初学者提供了靶场实验环境 我们可以利用此平台进行各种攻击实验 从而丰富自己对于Web安全的认识 这篇文章主要介绍了DVWA平台中的
  • 【Hello mysql】 mysql的内外连接 (重点)

    Mysql专栏 Mysql 本篇博客简介 介绍mysql的内外连接 mysql的内外连接 重点 内连接 显示SMITH的名字和部门名称 外连接 左外连接 右外连接 总结 表的内外连接是mysql中比较常用的内容 也是我们学习mysql的重点
  • Python str函数

    描述 str函数是Python的内置函数 它将参数转换成字符串类型 即人适合阅读的形式 语法 str object 名称 说明 备注 object 待被转换成字符串的参数 可省略的参数 返回值 返回object的字符串形式 使用示例 1 无
  • vue.js 输入框输入值自动过滤特殊字符替换中问标点

  • 搜寻吉祥数,在给定的范围内,例如1~99999,找出吉祥数字,满足的条件为:全部数字必须由6或者8构成,如66666,66668,668,…

    题目 在给定的范围内 例如1 99999 找出吉祥数字 满足的条件为 全部数字必须由6或者8构成 如66666 66668 668 1 一开始想的很杂 考虑了效率 把要查找的数转化成String再转化成char数组 逐个跟 6 8 比较 但
  • 随机变量列的四种收敛性

    极限定理是研究随机变量列的收敛性 在学习中遇到了随机变量列的四种收敛性 几乎处处收敛 a e 收敛 以概率收敛 P 收敛 依分布收敛 d 收敛 k阶矩收敛 下面是对它们的吐血整理 考虑一个随机变量列 n c为一个常数 由于随机性不能直接刻画
  • 基于stm32f103c8t6的定时器详解(持续更新)

    一 stm32f103系列定时器介绍 先声明 stm32f103c8t6中没有基本定时器 只有TIM1 TIM4 分别是高级定时器和通用定时器 对照下图请自行阅读stm32f103x的datasheet 1 定时器功能 定时 输出比较 输入
  • Uncaught (in promise) TypeError: Cannot read properties of undefined (reading ‘commit‘)

    问题 使用vuex的时候 调用this store commit 方法名 参数 的时候 报了这个错 搜索到的解决方法都是在说什么store没在main js里vue实例中挂载 而我 已经挂得好好的了 给我气坏了 解决策略 我问题在于 没有把
  • Vue开发环境搭建和vue-cli脚手架

    vue本质是一个js脚本 提供了一个前端框架 在开发时 可以直接引入这个js脚本 也可以使用脚手架工具 在本地搭建一个项目 Vue js安装 方法一 在 Vue js 的官网上直接下载 vue min js 并用
  • 质量铁三角

    文章目录 质量铁三角 1 流程 2 技术 3 组织 质量铁三角 1 流程 从计划到策略的实现 流程就是按照这种思维方式指导软件开发的 并且流程来源于成功的经验 可以指导项目少走弯路 从而提高软件质量 不仅如此 流程还对项目的成本和进度控制有
  • 树的Hash方法?

    写这篇博文的主要还是因为自己菜得抠脚 弱校联盟的十一专场的第三天是JAG Practice Contest for ACM ICPC Asia Regional 2016 其中的E题大意是给一颗有根树 问有多少对子树每个深度的节点数都相同
  • 【C语言】顺序表的创建

    一 代码实现部分 1 顺序表是线性表的基础部分 至于顺序表 在本人看来无异于数组 至于线性表的概念 在此不再赘述 接下来尝试利用C语言对线性表中的顺序表进行代码实现 此程序中规定用户输入的数据类型为int类型 typedef struct
  • one大白陪你聊聊2021年总结

    我的2021 工作方面 感情方面 生理方面 心理方面 生活方面 重要的事情 工作方面 21年换了一份工作 薪资有了一点提升 技术方面提升有些缓慢 直到21年底才想起 察觉到自己对于技术方面今天没咋进步 开始每周的技术提升计划 一周学习8小时
  • 数据分析与挖掘(十八)------挖掘建模之时序模式

    一 引言 就餐饮企业而言 经常会碰到如下问题 由于餐饮行业是生产和销售同时进行 因此销售预测对于餐饮企业十分必要 如何基于菜品历史销售数据 做好餐饮销售预测 以便减少菜品脱销现象和避免因备料不足而造成的生产延误 从而减少菜品生产等待时间 提
  • 怎么彻底删除电脑上的软件_如何用一行代码彻底删除电脑捆绑的流氓软件!

    你是否有过这样的烦恼 只想下载软件A 一个不小心给我捆绑了B C D E F等等我不需要的流氓全家桶软件 那是相当的痛苦啊 删除又删除不干净 这可如何是好 今天我们一起来看如何一行代码就可以将这些流氓捆绑软件全部找出并彻底清理
  • 最小二乘法入门(Matlab直线和曲线拟合)

    参考博客 https blog csdn net wokaowokaowokao12345 article details 72850143 多的就不多说了 持续脱发中 最小二乘法历史起源之类的 https baike baidu com
  • 前端三剑客_CSS

    前端三剑客 CSS 1 CSS简介

随机推荐

  • span标签之间有空格怎么办

    span标签之间有空格 span标签之间有很大空格 代码如下
  • 脚手架创建的 ant-design-pro 6 mock接口404

    大家好 我是鱼尾 今天分享一个前端小知识 我在使用ant design pro脚手架创建项目碰到的一个问题 复现过程 使用 npm 初始化 创建项目 npm i ant design pro cli g pro create myproje
  • 网络安全公开数据集

    DARPA入侵检测数据集 DARPA 1998数据集 收集了9周的 TCPDUMP网络连接和系统审计数据 7周的训练数据 2周的测试数据 包含了Probe DoS R2L U2R四大类攻击 DARPA 1999数据集 DARPA 1999覆
  • .Net5 WebApi中使用Autofac作为IOC容器(已在生产环境中使用)

    本文讲解在 Net5 WebApi中使用Autofac作为IOC容器 已在生产环境中使用 安装Autofac 创建一个独立模块来实现动态依赖注入 也可以常规使用 我这里只讲解独立模块的依赖注入 修改Program类 使用Autofac容器
  • OpenAI Embedding:快速实现聊天机器人(四)

    theme orange 本文正在参加 金石计划 接上文OpenAI Embedding 快速实现聊天机器人 三 如何使用Python实现embedding相似度搜索 这篇文章继续讲如何将搜索到的相似文本进行提炼 并最终得出问题的答案 提炼
  • 【华为OD统一考试B卷

    在线OJ 已购买本专栏用户 请私信博主开通账号 在线刷题 运行出现 Runtime Error 0Aborted 请忽略 华为OD统一考试A卷 B卷 新题库说明 2023年5月份 华为官方已经将的 2022 0223Q 1 2 3 4 统一
  • 微信开发中遇到的access_token坑 ,access_token失效和刷新

    这真是一个巨大的坑 为了避免以后踩到同样的坑和帮助刚接触这块的同学快速脱坑 我花了些时间研究问题的来龙去脉 提供了一个不太完美的解决方案 以及未来规划的完美解决方案 问题现象 在开发微信jssdk的图像接口功能时 测试环境和回归环境都ok
  • LeetCode-动态规划

    文章目录 一 前言 二 动态规划 什么是动态规划 动态规划的求解过程 三 LeetCode 198 打家劫舍 四 LeetCode 213 打家劫舍 五 LeetCode 64 最小路径和 六 LeetCode 62 不同路径 七 Leet
  • SpringBoot去掉Druid监控页底部广告

    默认 Druid 的监控页面底部会有一块儿广告位 如图 我们如果不想显示这一块的话 可以对其进行过滤掉 具体配置如下 import com alibaba druid spring boot autoconfigure DruidDataS
  • coco数据集的评价指标

    Average Precision AP IoU 0 50 0 95 area all maxDets 100 0 000 Average Precision AP IoU 0 50 area all maxDets 100 0 000 A
  • 西瓜书 第6章、支持向量机 6.1-6.5

    支持向量机 一 间隔与支持向量 分类学习的基本思想就是基于训练集在样本空间找到一个划分超平面 将不同类别的样本分开 但是能将样本分开的有很多应该找那个最中间的超平面 因为其容忍度最好 如下图所示应该用最中间的红色面 线性超平面 超平面分为线
  • 华为OD机试 C++ 计算误码率

    题目 有时 当信息通过某种方式传输时 它会受到干扰 造成信息失真 现在 您需要帮助计算这种信息失真的程度 我们称之为误码率 简单地说 误码率就是传输过程中出错的信息部分所占的比例 具体内容 我们使用简化的方式表示信息 如 2A3B4D 指的
  • C#基础语法————变量

    1 变量的存储 一个变量只不过是一个供程序操作的存储区的名字 在 C 中 每个变量都有一个特定的类型 类型决定了变量的内存大小和布局 范围内的值可以存储在内存中 可以对变量进行一系列操作 存储变量的语法 变量类型 变量名 变量名 值 号 在
  • Spring IoC Bean-生命周期源码梳理分享

    Spring IoC Bean 生命周期 一 什么是Spring 1 Spring IoC a Dependency Injection DI 依赖注入 b Dependency Lookup DL 依赖查找 c Spring容器管理的对象
  • HBase宕机的多种场景

    异常导致的退出会通过接口Abortable定义的abort 方法实现 Abortable实现类如下 由以上类图可以看出HBaseAdmin的abort由于是client的访问 因此终止服务只需抛出异常即可 HConnection也是用于cl
  • BUUCTF Rabbit

    学习关于Rabbit加密的密文特征 AES DES RC4 Rabbit Triple DES 3DES 这些算法都可以引入密钥 密文特征与Base64类似 明显区别是秘文里 比较多 并且经常出现 且Rabbit开头部分通常为U2FsdGV
  • aiohttp 异步http请求-3.异步批量下载图片

    前言 当我们需要批量下载图片的时候 requests 库会比较慢 如果一个个下载 出现阻塞的时候 后面的都会阻塞卡住 假死状态 当然你用多线程也能提高效率 这里介绍用aiohttp 异步批量下载图片 异步批量下载图片 话不多说 直接看代码
  • DDT数据驱动

    一 DDT介绍 数据驱动思想 数据和用例进行分离 通过外部数据去生成测试用例 适用场景 进行接口测试时 每个接口的传参都不止一种情况 一般会考虑正向 逆向等多种组合 所以在测试一个接口时通常会编写多条case 而这些case除了传参不同外
  • IMU-Allan方差分析

    使用Allan方差来确定MEMS陀螺仪的噪声参数 陀螺仪测量模型为 使用长时间静止的陀螺仪数据对陀螺仪噪声参数进行分析 上式中 三个噪声参数N 角度随机游走 K 速率随机游走 和B 偏差不稳定性 背景 Allan方差最初由David W A
  • Visual Studio(VS)的基本使用

    Visual Studio VS 的基本使用 本文中1 10章节是我观看黄强老师视频所记录的笔记 详细内容请观看视频 30分钟学会Visual Studio 2017 文章目录 Visual Studio VS 的基本使用 1 VS下载 2