Visual Studio中的Windows 桌面开发

发布时间:2017/4/17

作者:Adam Welch (MSFT)

Windows桌面平台长期以来一直是C ++应用程序开发人员最受欢迎的平台。 使用C ++和Visual Studio,您可以使用Windows SDK来定位许多版本的Windows,从Windows XP到Windows 10超过十亿个设备。 像Microsoft Office,Adobe Creative Suite和Google Chrome这样的热门桌面应用程序都使用与Windows桌面开发基础相同的Win32 API构建。 Windows桌面开发可让你获得在任何非移动开发平台上最高数量的用户。

在这篇文章中,我们将介绍Visual Studio中“使用C ++的桌面开发”的工作负载,以及开发桌面应用程序的工作流程。 关于开发通用Windows平台应用程序的信息,请查看此文章

获取工具

在安装了Visual Studio之后,从开始菜单打开Visual Studio安装程序并导航到工作负载页面。我们需要安装“使用C ++的桌面开发” 工作负载, 它提供了可在Window上运行的Windows桌面应用程序所需的工具。在这些类型的应用程序中使用的Win32 API模型是在Windows版本中使用的开发模型之前,是介绍从Windows 8开始的现代Windows API。近来API随后演变为Windows 10的UWP平台,但是使用Windows APIs的传统桌面开发仍然在所有版本的的Windows上支持。

 

当你安装C++ Windows桌面负载时,你有很多种选择来定制你的安装,你可以选择你所需要的工具,Windows SDK, 以及其他的特性功能比如最新的ISO C++ 标准候选版,这样的模块有对STL的支持,用于构建面向x86和x64系统桌面应用程序的核心C++编译器和库文件,这些都包含在VC++ 2017 v141工具集(x86, x64)中。重要的选项包括对MFC和C++/CLI的开发支持。在下面的例子中,我们将展示如何创建一个MFC应用程序,所以需要安装这个可选组件。

打开代码并进行构建

在安装了C++ 桌面负载之后,你可以开始在已有的项目上进行编码也可以创建新的项目。除此之外,Visual Studio可以打开任何文件夹中的代码并被配置使用跨平台系统CMake来进行构建。Visual Studio CMake集成甚至允许你使用另外一个编译器,只需要通过打开包含在你CMakeLists.txt文件的目录,并让VS执行其他操作。

 

当然,这里也完全支持微软自己的构建系统MSBuild, 它使用 .vcxproj的文件格式。MSBuild是一个强大的,功能齐全的构建系统,允许在Visual Studio构建Windows目标平台的工程项目。构建一个MSBuild基础项目仅需要一个.vcxproj文件,并且能在集成环境中进行构建或可以使用命令提示

在Visual Studio 2017中,你也可以单纯的打开一个包含代码文件夹然后开始工作。在后台,Visual Studio将会索引你的文件并提供智能感知支持与重构,并提供其他的你希望的导航。你可以创建自定义 .json脚本去指定生成配置。

 

创建新项目

如果你从头创建一个新项目,那么你可以选择任意一个项目模板:每个模板提供可自定义的可以编译和运行的构建配置和样板代码:

 

项目类型(文件夹) 描述
Win32 Win32 API(也成为已知的Windows API)是一个基于C的框架,用于创建基于GUIWindows桌面应用程序,该应用程序具有消息循环并能对Windows消息和命令做出反应。 Win32控制台应用程序默认情况下没有GUI,而且是在命令行的控制台窗口中运行。
ATL 活动模板库是一组基于模板的C ++类,可以创建小型,快速的组件对象模型(COM)对象.COM
MFC Microsoft Foundation Classes是面向对象的Win32 API封装,为创建本机UI提供了设计和广泛的代码生成支持
CLR C ++ / CLI(通用语言接口)可以实现本地C ++代码与以C语言或Visual Basic语言编写的.NET代码之间的高效通信

 

项目模板都包含在这些类型的桌面应用程序中,具体取决于你为工作负载选择的功能。

项目导航

一旦你已经选择了一个模板,你可以自定义你要选择创建的项目。每一个项目都有一个向导帮助你创建和自定义你的新项目。下图是MFC应用程序的向导页面。

这个向导为你创建并打开一个新的项目,并且你的项目文件将显示在解决方案资源管理器中。

此时,即使在你没有写一行代码之前,你也可以通过按下F5构建并运行你的应用程序 。

编辑代码和导航

Visual Studio提供了许多功能帮助你更正确更高效的编码。无论是智能感知提供的强大预测功能或在”导航到“中找到的流体导航功能都可以让我们在Visual Studio中更快的进行操作。在Visual Studio使用自动完成功能,只需从成员列表中按Tab键选择要添加的项目即可。

你也可以将光标悬停在任何的变量,方法或者其他的代码符号上,就可以使用快速消息功能得到关于这个代码的信息。

另外还有很多好的代码导航功能可以让你在处理大型代码库的时候更有效率,包括转到定义转到行 /符号/成员/类型,查找所有引用,查看调用层次结构,对象浏览器,和更多。查找定义减少了上下文切换,允许你不用打开另外的文件查看已选变量的定义代码。

我们也支持一些很常见的重构技术,像重命名和提取方法, 它让你的代码看起来更整齐漂亮。

调试和诊断

Visual Studio以调试程序而出名!它提供了应用于各种应用程序的世界级的调试体验,没有比它更适合的工具来调试Windows桌面平台上的应用程序。

强大的功能,如高级断点,自定义数据可视化和调试时间分析使你能够完全控制应用程序的执行,甚至找到最难发现的错误。用调试器数据提示查看你代码的数据值。记录快照并将其分散,以显示潜在的内存泄漏,甚至从Visual Studio内部调用您的应用程序中的PageHeap,以帮助解决众所周知的内存损坏的难题。 在应用程序运行并实时监控性能时,跟踪实时CPU和内存使用情况。

测试你的代码

单元测试是提升代码质量非常受欢迎的方法,而Visual Studio是完全支持测试驱动开发的。创建新的测试并在测试资源管理器中管理他们,能够更容易的执行测试。写单元测试是简单的而且能够帮助及时查找出现的问题而不是等到事情更难分离的时候。Visual Studio允许本机和托管测试项目模板,来测试可以在新项目模板Visual C ++ / Test部分找到的本机代码。注意本机测试模型来自于C++桌面负载,而托管测试则来自于.NET桌面负载。

和他人一起工作

Visual Studio除了使独立开发者的工作更有效率,协同开发也直接集成到了IDE中。Visual Studio团队服务这一整套功能,可以优化软件开发团队的团队协作进程。创建工作项目,跟踪进度和管理你的错误,并从Visual Studio内部打开问题数据库。Git被完全支持并与团队资源管理器无缝衔接,允许轻松的管理分支,提交和拉取请求。

 

只需要免费注册Visual Studio团队服务帐户,然后你就可以在Visual Studio中追踪你桌面应用程序的源代码。Visual Studio团队服务还简化了桌面应用程序的持续集成。创建和管理在云端自动编译和测试应用程序的构建过程。

Windows Store桌面应用程序包装

当你准备配置桌面应用程序,你通常会生成一个可执行文件可能还有一些库文件,以致于你能在Windows设备上运行你的应用程序。这使你可以轻松地按照自己喜欢的方式发布你的应用程序,例如通过从你的网站上下载或者通过第三方销售平台,像Steam.

Windows桌面应用程序的新选项将在Windows Store中提供,具有所需的所有优点。Desktop Bridge项目允许您通过Windows Store与通用Windows平台应用程序一起打包和分发Win32应用程序。当目标平台是Windows 10时,这可以提供优势,包括简化部署,更大的覆盖面,更简单的获利,简化的设置创作和差异更新。

试用Visual Studio 2017进行桌面开发与C ++!

下载Visual Studio 2017,尝试并分享您的反馈。 有问题,你可以通过VS标题栏右上角的“报告问题”选项来让我们知道。 你的反馈可以放在开发者社区门户。 有关建议,请通过UserVoice通知我们。