Visual Studio中用C++实现Windows桌面开发

Windows桌面平台一直是C++应用程序开发人员中最流行的平台。  使用C++和VisualStudio,您可以使用Windows SDK来定位Windows版本到Windows 10的Windows版本,其中Windows十亿的版本超过了十亿个。  诸如微软Office、Adobe创意套件和谷歌浏览器的流行桌面应用程序都是使用相同的Win32 API来构建的,它们是Windows桌面开发的基础。  为Windows桌面开发允许您在任何非移动开发平台上访问最多的用户。

null

在本文中,我们将深入到VisualStudio中的“桌面开发用C++”工作负载。 再看一遍 用于开发桌面应用程序的工作流。 有关开发通用Windows平台应用程序的信息, 看看这个帖子 .

获取工具

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

安装C++ Windows桌面工作负荷时,通过选择您所需的工具、Windows SDK和其他附加的特性(如最近的ISO C++标准候选),这些选项可以定制安装,这类模块支持STL。 用于构建以x86和x64系统为目标的桌面应用程序的核心C++编译器和库包含在 VC++2017 v141工具集(x86、x64)。 值得注意的可选工具包括MFC和C++ +CLI开发的支持。  在下面的示例中,我们将展示如何创建MFC应用程序,因此安装了此可选组件。

desktopwl

开放代码和建筑

在安装C++桌面工作负载之后,您可以开始在现有项目中进行编码,或者可以创建新的项目。visualstudio可以打开任何代码文件夹,并配置为使用CMake(一种跨平台构建系统)进行构建。VisualStudioCmake集成甚至允许您通过打开包含CMakeLists.txt文件的目录来使用另一个编译器,并让VS来完成其余的工作。

当然,也完全支持微软自己的构建系统 MSBuild公司 ,它使用.vcxproj文件格式。  MSBuild是一个健壮且功能齐全的生成系统,它允许在visualstudio中生成以Windows为目标的项目。构建基于MSBuild的项目只需要一个.vcxproj文件,可以在IDE中构建,也可以通过 使用命令提示符 .

在Visual Studio 2017中,您还可以简单地打开一个包含代码文件的文件夹,然后立即开始使用它。在后台,visualstudio将为您的文件编制索引,并提供Intellisense支持,以及重构和您期望的所有其他导航辅助工具。您可以创建自定义的.json脚本来指定构建配置。

创建新项目

如果您是从头开始创建一个新项目,则可以从多种项目模板中的一种开始:每个模板提供可自定义的生成配置和样板代码,这些代码可编译并开箱即用:

项目类型(文件夹) 说明
Win32操作系统 这个 Win32 API (也称为windowsapi)是一个基于C的框架,用于创建基于GUI的Windows桌面应用程序,这些应用程序具有消息循环并对Windows消息和命令作出反应。默认情况下,Win32控制台应用程序没有GUI 在控制台窗口中从 命令行。
ATL公司 这个 活动模板图书馆 是一组基于模板的C++类,允许您创建小的快速组件对象模型(COM)对象。组件对象模型
MFC公司 微软基础类 是一个基于Win32 API的面向对象包装器,它为创建本机UI提供设计器和广泛的代码生成支持。
清除 C++/CLI (公共语言界面)启用 使用C++语言或Visual Basic编写的本地C++代码与.NET代码之间的高效通信。

根据为工作负载选择的功能,每种类型的桌面应用程序都包含项目模板。

templates

项目向导

选择模板后,可以选择自定义要创建的项目。  每个项目类型都有一个向导来帮助您创建和自定义新项目。 下图显示了MFC应用程序的向导。

wizard

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

solnexp

此时,即使在编写一行代码之前,也可以通过按F5来构建和运行应用程序。

mfcapp

编辑代码和导航

VisualStudio提供了许多功能,可以帮助您更有效地正确地编写代码。无论是因为 智能感知 或是在 导航到 在visualstudio中,有一个特性可以使几乎任何操作都更快。  只需在要从成员列表中添加的项上按Tab键,VisualStudio就可以使用自动完成功能为您完成这项工作。

intellisense

也可以将鼠标悬停在任何变量、函数或其他代码符号上,并使用“快速信息”功能获取有关该符号的信息。

infotip

还有许多优秀的代码导航特性可以使处理大型代码库的效率更高,包括 转到定义 , 转到线条/符号/成员/类型 , 查找所有引用 , 查看呼叫层次结构, 对象浏览器 ,等等。 Peek定义 允许您查看定义所选变量的代码,甚至不必打开另一个文件,从而最大限度地减少了上下文切换。

codepeak

我们还支持一些更常见的重构技术,比如重命名和提取函数,这些技术允许您保持代码的美观和一致性。

调试和诊断

visualstudio以调试应用程序而闻名!  世界级的调试经验为任何类型的应用程序提供了大量的工具,没有任何工具更适合调试以Windows桌面平台为目标的应用程序。

datatip

高级断点、自定义数据可视化和调试时评测等强大功能使您能够完全控制应用程序的执行,甚至可以找出最难发现的错误。  使用调试器数据提示查看代码中的数据值。  拍摄内存快照并对其进行区分,以显示潜在的内存泄漏,甚至调用 页面堆 在visualstudio内部的应用程序上,帮助解决众所周知的内存损坏难题。  在应用程序运行时跟踪实时CPU和内存使用情况,并实时监控性能。 hub

测试代码

单元测试是一种非常流行的提高代码质量的方法,并且在visualstudio中完全支持测试驱动的开发。  创建新的测试和 管理 把它们放在测试浏览器里 便于跟踪和执行测试。 编写单元测试很容易 并且可以在问题出现时帮助发现问题,而不是在以后事情更难孤立的时候。  VisualStudio允许本机和托管测试项目模板来测试本机代码,可以在 Visual C++ 试验 新项目模板的部分。  请注意,本机测试模板附带C++桌面工作负载,托管测试附带.NET桌面工作负荷。

test

与他人合作

除了visualstudio使开发人员的所有活动更有效率之外,协作也是直接集成到IDE中的东西。  visualstudioteamservices是为软件开发组织优化团队协作过程的一套功能。  从visualstudio内部创建工作项、跟踪进度、管理bug和开放问题数据库。  Git完全受支持,并与teamexplorer无缝协作,允许轻松管理分支、提交和pull请求。

teamexp

简单 免费注册VisualStudioTeamServices帐户 ,然后可以将桌面应用程序的源代码跟踪到VisualStudioTeamServices中。 VisualStudioTeamServices还简化了桌面应用程序的连续集成。创建和管理构建过程,在云中自动编译和测试应用程序。

桌面应用程序的Windows应用商店打包

当您准备好部署桌面应用程序时,通常会构建一个可执行文件(.exe)和一些库,以便您的应用程序可以在Windows设备上运行。  这使您可以轻松地分发您的应用程序,但您喜欢,例如通过下载从您的网站,甚至通过第三方销售平台,如蒸汽。

Windows桌面应用程序的一个新选项是在Windows应用商店中提供,它具有所有必要的优点。这个 桌面桥项目 允许您通过Windows应用商店打包和分发Win32应用程序 通用Windows平台应用程序 . 当以Windows10为目标时,这可以提供一些优势,包括简化的部署、更大的覆盖范围、更简单的货币化、简化的设置编写和差异化更新。

下载Visual Studio 2017 ,试用并分享您的反馈。  如有问题,请通过 报告问题 选项位于VS标题栏的右上角。 跟踪您对 开发者社区门户 . 如需建议,请告知我们 用户语音 .

© 版权声明
THE END
喜欢就支持一下吧,技术咨询可以联系QQ407933975
点赞0 分享