2017 年 1 月

第 32 卷,第 1 期

此文章由机器翻译。

编者注 - 由外而内: Kenny Kerr 如何将 C++/WinRT 引入 Microsoft

通过Michael Desmond |2017 年 1 月

Michael Desmond希望获取操作时使用 Windows 运行时 (WinRT) 上的 c + + 开发人员面对进入门槛较高。任一工作与 Windows 运行时 c + + 模板库 (WRL) 最初开发启动内部开发的 Api 由 Microsoft,或转到 Microsoft 的 c + + 组件扩展 (C + + /cli CX) 来简化访问 WRL 功能,但代价是无需学习一种新的 c + + 方言。

Kenny Kerr,MSDN 杂志 》 的长期 c + + 专栏作家,现在在 Microsoft,Windows 团队的工程师认为必须有更好的方法。他在工作开始 2014年在早期的 Windows 运行时投影会使该语言的头等大事 WinRT 空间中的标准 c + +。

"我有一些以前的经验将 COM Api 投影到现代 c + +,,因此我决定看看是否可以对 Windows 运行时应用这些相同的技术,"Kerr 说。"我应邀去雷蒙德在两个不同的情况下,它肯定看上去就像它们正准备的概念。最后,我提供一个作业并加入 Windows 团队来完成其帮助项目。"

在此过程中的结果是 C + + WinRT,完全在标头中实现的 WinRT 标准 c + + 语言投射文件,并允许开发人员能够使用和编写 Windows 运行时 Api 使用任何标准符合 c + + 编译器。这是令人兴奋的内容,并 Kerr 探讨了它在他的功能文章的详细信息中的所有这个月,"介绍 C + + WinRT。"

Kerr 介绍了的真正两个部分 C + + WinRT — 基础库从 GitHub (URL),可以下载的投影和标准 c + + 和 WinRT 之间充当桥梁的 cppwinrt.exe 编译器。虽然大部分迄今工作一直致力于库,并投影,Kerr 说 cppwinrt 编译器值得注意。"开发人员真正需要可获取有关此工具的太多的事情,如它解决了很多问题,从生成投影为不同的平台或组件,到播放着至关重要的作用,在开发 WinRT 组件完全使用 C + + WinRT。"

在开发 C + Kerr 所面临的最大挑战之一 + WinRT 正在管理的权衡取舍 WinRT 使能够支持 JavaScript 和托管的.NET 语言现成的投影。他成功跨语言投射出在泛型集合工作的复杂性。

"我在早期面临的最大挑战之一提出标准 c + + 来处理 WinRT 的界面版本管理模型的有效方法。我之所以提到这简要在本月的文章中,但我不介绍如何那些必需接口实际上聚合在一起在 c + + 中编译时"Kerr 说。"它真正推送的 c + + 在那时我了解和已由于推送 Visual c + + 编译器来更有效地处理此类技术在此规模下。

具有已强调 Microsoft 多年了开放性和跨平台支持在其开发工具 (在最近中看到我编者注列 MSDN 杂志 connect (); 上的特殊问题msdn.com/magazine/mt790179)。C + + WinRT 项目是在工作,这些值的一个极好示例,如 Microsoft 欢迎社区的巨大努力工作以提高其平台中。尽管如此,带来了一个问题︰ 如何在 Microsoft 外部专家最终确实创建重要工具,用于主线的 Microsoft 编程语言? Kerr 说它归结为独特眼光。

"有了大量经验非常丰富 c + + 开发在 Microsoft 人员花费了数十年时间长时间使用 c + + 和 COM 的职业生涯,"Kerr 说。"我认为受理人没有意识到不可能只需仍要尝试并向其工作原理。"


Michael Desmond*是 MSDN 杂志的主编。 *