Visual Studio C和C++开发入门

您是Visual Studio 新手么?是不是还没用它来做过C++开发?那么您来对了地方。不论您是一个从来没写过程序的学生或是一个有着多年丰富经验的C++开发人员,都会发现Visual Studio 拥有一个多么强大的C++开发环境。Visual Studio 是一个拥有很多特色的IDE,从代码浏览,着色和导航,还有符号的自动完成功能,内置编译器和生成系统,线上调试器以及内置的测试和代码分析工具。从头到尾涵盖了代码到持续的集成管理,但这当然也意味着这里头有不少的东西要学。这篇博客只是介绍了一些基础知识。您可以大概地了解到Visual Studio提供的功能强大的工具,但如果您想了解更多,可以点击这篇文章中的相关链接。

这篇博客包括以下内容:

  1. 安装Visual Studio
  2. 打开代码项目或代码文件
  3. 构建应用程序
  4. 代码编辑与导航
  5. 调试和诊断问题
  6. 测试
  7. 与团队合作
  8. 其他的用处
  9. 结论

安装Visual Studio

自从Visual Studio 2017版发布之后,Visual Studio已经跨越20年了。发布出去的产品有很多,但总的来说,都会选择安装最新的那一个。因为这样您可以享受最新的和最棒的功能,包括最新的编译器。而且最新的版本修复了一些最新的bug而且在性能上也做了改进。

Visual Studio有三种不同的版本可供选择:社区版,专业版,企业版。社区版是完全免费的,以供小企业,开放源代码项目,学术研究,课堂学习环境所用;如果您不限定社区版,也可以花钱购买专业版;如果您在为一家大企业工作,或是想要最好的Visual Studio以提供更多的功能,那么可以考虑企业版。但如果您不确定究竟该选哪一种,可以比较Visual Studio上的产品再做决定。本博客适用于所有的Visual Studio版本。 下载最新的Visual Studio

一旦您下载了安装程序,然后运行它。选择您想要安装的工作应用程序,以及所需的组件。以下是例子是选择了C++底下的工作应用程序:

 

还有很多其他语言的工作应用程序比如C#,还有其他的平台的工作应用程序如微软Azure(以供云所需)。已安装的工作应用程序不是固定不可选的,您可以通过打开安装程序随时更改这些选项。

        本博客只安装了C ++ Desktop development 这个workload,仅供参考与说明。

一旦您做了选择并点击安装,Visual Studio就开始安装。完成后,所有Visual Studio已设置好,就可以开始使用了!

现在让我们看一个实际的项目。在任何时候,如果您找不到您想要的某些功能或是命令,您可以在IDE右上角的搜索框(或按Ctrl+Q)搜索到它并快速启动它。 下载演示项目

打开代码项目或代码文件

如果您在窗口文档搜索打开了演示项目文件,除了一些源代码您还会发现各种不同的文件。一般来说,由Visual Studio组织的代码显示为一个Solution,其中包括项目的集合。用这种方式组织一个代码库时,它包括有一个 .sln文件(用来配置解决方案)以及 .vcxproj 文件(用来配置每个项目)。这些文件有助于定义包含路径之类的东西,设置编译器,以及如何连接项目等等。

Visual Studio还支持以一个文件夹方式打开Visual Studio2017,这避免了 .sln文件和 .vcxproj文件的干扰,并允许您独立地配置自己的环境。对于跨平台项目来说这个方法很理想,可以更好地从不同的IDE或编辑器运行,如果您是CMake 用户,Visual Studio2017中还有内置的CMake经验。本博客就不一一打开文件夹或CMake做示范了,您可以通过本博客相关的链接,查看更多的详细信息。

       打开demoApplication,双击 .sln文件,或是从Visual Studio转到文件>打开>项目/Solution... 导航到相应的Solution。
一旦您已经打开该项目,该项目中的内容视图将显示在Solution资源管理器,如下图所示:

所创建的新项目也可以去文件 >新建>项目...然后在Visual C++>Win32底下的控制台应用程序选择适当的模板。

构建应用程序

Visual Studio与Visual C++编译器是紧密结合的,以便于生成和调试C++应用程序。IDE内标准工具栏的顶部附近,有下拉列表,可以在那里更改生成部署和架构。您还可以根据需要很容易地添加更多的配置。比如说您可以更改debugX86的默认设置。

       尝试通过转到Build> Build Solution (或者按F7 )来构建应用程序。如果代码包含错误,构建将失败。

       输出窗口在构建时是一种有价值的工具;它提供有关构建的状态的信息。

修复编译器错误

当您尝试build时,可以看到有一个错误列表中的错误在屏幕底部。您不仅可以看到关于这个错误出现的位置以及其他描述,如果您双击错误列表中的错误,还可以跳转到出错的代码处。这使得很容易快速导航到问题领域。

       在building之后可以双击错误列表中的错误,然后进行修改错误的代码。

代码编辑和导航

本节浅谈了Visual Studio的基本内容,要了解有关此领域的更多信息,请访问Visual Studio博客文章中的C ++代码编辑和导航模块

智能提示

帮助您在Visual Studio中快速编写代码的最有用的功能之一是IntelliSense,它是一个上下文感知代码完成工具。在您输入时,Visual Studio会建议类,方法,对象,代码片段和更多的符号,这些符号与您目前为止所输入的内容以及您输入的内容有关。您可以使用箭头键上下滚动选项条,并使用Tab键完成符号。

       在main函数中,尝试向mySorter对象添加一个farewell功能的调用。您应该会看到IntelliSense弹出分类器类中提供的所有可能的功能。

跳转

有效地编写和理解代码,易于代码导航至关重要。通过使用“跳转”功能(Ctrl + T),您可以快速找到所需的位置,而不必将手从键盘上挪开。打开对话框时,您可以通过点击所需的按钮或使用特定标记启动查询来过滤结果。例如,您可以通过打开“跳转”对话框并键入 f” 来转到特定文件。访问此对话框的另一种常见方法是转到特定的行号,您可以通过打开传统菜单并使用“:”标记或按Ctrl + G来执行此操作。尝试使用跳转来浏览演示项目。

       使用跳转菜单(Ctrl + T)打开文件sorter.h,键入“f sorter.h”。

       使用Ctrl + G快捷键转到第23行将私有成员 “名称” 更改为您的名称。

查看 /跳转到定义

有时找到代码库中定义了的一个函数或对象的位置可能很有挑战性。这个问题在Visual Studio中很容易解决,您可以轻松地查看定义。在演示项目中选择要查看的功能,然后按Alt + F12或从右键单击菜单中选择它。这将启动定义功能文件的预览,您可以在其中快速进行较小的改动。按Esc键关闭预览窗口。您也可以直接按F12直接进入定义。

       通过选择功能并按Alt + F12 ,在printVector功能上使用Peek Definition

       当打印矢量中的数字时在它们之间添加一个破折号。

重命名

您还可以使用Visual Studio重构现有代码。在演示项目中,有一个无名的功能。而不是去每个文件手动更改每个事件的名称,请选择其中一个功能,然后按Ctrl + RCtrl + R或右键单击它,然后选择重命名。这将打开一个菜单,您可以在其中选择要重命名的菜单,然后在更改提交之前进行预览。

       使用重命名(Ctrl + R,Ctrl + R)将方法SILLY_SALUTATION_FUNCTION更改为更有用的东西,如greeting”。

调试和诊断问题

一旦您可以成功构建应用程序并轻松编写代码,下一步通常就是调试应用程序。调试可能是一个复杂的过程,Visual Studio提供了许多强大的工具来帮助您。最常用的调试工具是断点,所以让我们开始尝试这个功能吧。如果您点击代码左侧一栏,则会显示一个红色圆圈。如果单击圆圈,则断点将被删除。

当设置断点并且程序达到执行点时,它将停止,允许您检查变量和程序的当前状态。

       demoApplication.cpp第33行放置一个断点,点击行号左侧的栏。

       再次单击红色圆圈以删除断点

如果要开始调试,您可以按下IDE顶部的绿色箭头或按F5。一旦程序在断点上停止,您可以做很多事情来帮助您诊断问题。找到问题的最佳方式之一是了解程序的当前状态,而不是找问题应该是什么。通过使用列出最近使用的变量及其值的自动窗口可以轻松实现。您还可以将鼠标悬停在变量上,以查看当前值。

执行以下操作:

1.在主要功能的第14行上放置一个断点。

2.单击IDE顶部的绿色箭头,或按F5开始调试。

3.通过将代码中的值悬停,找出testInt在初始化之前的值。

4.在自动窗口中查看testInt的值。

5.再次按绿色箭头或F5停止调试。

当您已经充分了解程序的当前状态时,可以按绿色箭头按钮或再次按F5使程序运行直到下一个断点。如果需要使用顶部的箭头,您也可以一步一步地执行程序。

       Step OverF10)将贯穿当前行中的任何操作,并在函数返回后暂停执行。 Step IntoF11)将跟随下一行的函数调用,让您看到该函数内正在发生的情况。在任何时候,您都可以按Shift + F11退出这将在完成当前功能范围之后放置程序。一旦您调试完毕,就可以运行程序并完成开发了,或者按下IDE顶部的红色方块(或Shift + F5)停止调试会话。

       使用这些的组合来操作演示项目,看看是否可以修复排序算法中的运行时错误(提示:它在排序算法中)。

Visual Studio中有更多工具可以帮助您配置和调试应用程序。查看C ++调试和诊断博客文章了解更多。

测试

Visual Studio有一个内置的测试框架来帮助您对项目进行单元测试,确保您编写的代码正常工作。要测试演示项目(这是一个本机控制台应用程序),您可以向该soluti-on添加Native Unit Test Project

       将测试项目添加到演示中。这是通过转到File> New> Project然后选择Visual C ++> Test> Native Unit Test Project完成的。确保在Solution下拉列表中选择添加到Solution选项。您也可以在Solution资源管理器中右键单击您的Solution名称,然后选择添加 >新建项目来完成相同的任务。

添加单元测试后,您可以打开 .cpp文件,并在模板中查看基本测试框架,并开始添加测试。

       添加一个测试方法,确保它通过。尝试以下代码:

TEST_METHOD(TestMethod1)

{

Assert::AreEqual(1,1);

}

添加测试后,您可以通过在IDE顶部菜单中的 “测试”>“运行”>“全部测试” 来运行测试。运行测试后,您将在Test Explorer窗口中看到结果。

       通过运行测试>运行> 所有测试来运行您的测试 。尝试添加另一个测试将会失败,再次运行测试。

如果您想了解有关单元测试的更多信息,包括如何将测试项目连接到测试中的代码,并检查单元测试的代码覆盖范围,请查看Visual Studio博客文章中的C ++单元测试

与团队合作

与团队合作开展项目是很常见的一件事,Visual Studio 帮助您与其他人轻松协作!您可以使用GitTeam Foundation Server轻松创建新的源代码管理库来管理代码库。要为项目创建一个新的repo,请单击屏幕底部的“添加到源代码管理”按钮,并将 打开的项目添加到您选择的源代码控制系统中。

一旦你这样做,将为你的项目做一个本地的存储库。从这里您可以提交,或将您的更改推送到远程Git服务,如GitHub。这全部在Team Explorer窗口中进行管理。

       尝试将演示项目添加到源代码控件,并将其推送到GitHub。这是通过按添加到源控件按钮完成的,然后推送到Team Explorer中的远程存储库。
您也可以从Team Explorer窗口轻松地从源代码中克隆。选择 “项目”>“新建存储库” ,然后按照提示来克隆项目。在这块,你必须做的是粘贴在URL中,而且项目将被克隆。

要了解更多关于在Visual Studio中如何帮助一个团队工作做项目,请查看Visual Studio for C ++开发人员博客文章。

其他用处

  Visual Studio还可以做许多其他有用的事情。由于本文有限,而且很难在一篇文章中介绍完Visual Studio所有的知识。如果您想了解更多,按照以下链接了解更多关于如何充分利用Visual Studio的博客。

代码分析

默认情况下,Visual Studio会捕获很多代码问题,但是它的代码分析工具常常会发现难以找到的问题。报告的常见错误包括缓冲区溢出,未初始化内存,空指针解除引用以及内存和资源泄漏。此功能内置在IDE中,可以轻松地帮助您编写更好的代码。尝试通过转到分析菜单并选择运行代码分析 >Solution。在公告博客文章中了解有关代码分析以及C ++核心指南检查器的更多信息。

程序库获取

C ++中的程序库获取可能是最具有挑战性的。当Visual Studio支持NuGet软件包管理之后,最近又推出了一个名为vcpkg的新工具。 Vcpkg是由Microsoft维护的一个开源工具,简化了获取和构建开源库,目前支持超过200个开源库。该工具与Visual Studio本身分开,是Windows上任何C ++开发人员的有价值的伴侣。查看公告博客文章了解详情。

结论

我们希望本指南能够让您快速掌握Visual Studio,让您了解Visual Studio的一些核心功能。这应该足以让您可以用Visual Studio开始编写代码,但是在本博客中还有很多其他功能无法涵盖。Visual C ++博客是一个非常有用的资源,为了让您了解更多关于除了Visual Studio整体的产品之外的内容,我们一直在进行改进。您也可以在docs.microsoft.com上找到更全面的产品文档,然后用Visual Studio进行了不起的开发吧!

我们一直在不断努力地改进,如果您对我们有任何反馈或建议,请随时与我们联系!我们可以通过microsoft.comvisualcpp电子邮件互相联系,您还可以通过帮助 >报告产品中的问题或通过开发者社区提供反馈。