Windows 应用商店

面向 C# 开发人员的 Windows 应用商店 C++:了解知识领域

Bill Kratochvil

下载代码示例

C# 开发人员有一个丰富的开发环境,强调生产力在性能。 我怀疑此语句可能会见一些怀疑从 C# 开发人员,如表现优秀,并且超过什么我们大多数人想要实现我们的目标。 因此,C# 开发人员,为现代 c + + 不可能在作为生产力可能遭受甚至有新改进新的 c + + 提供的所有提供的投资回报。 然而,Windows 应用商店的应用程序开发的美是你可以采取敏捷方法构建可重用组件的生产能力,使用最好的两种语言,c + + 组件分阶段他们那里最有用。

本文旨在为 C# 开发人员想要进入的功率和性能的现代 c + +、 C + + / CX (组件扩展) 和 Windows 运行时 c + + 模板库 (WRL) 报价 (所有 c + + 在这里为简洁起见称为)。 它也是为开发人员,如果像我一样,计划上利用 Windows Azure 云计算的威力。 与 c + + 生成的应用程序不仅有可能延长平板电脑和手机的电池寿命,但也应导致降低成本更好的性能 / 瓦特、 每晶体管和每个周期 (请参见"c + + 和 2011 年之后:草本萨特 — — 为什么 c + + 吗?"在 bit.ly/1gtKQya)。

问题 C# 开发人员遇到的尝试学习 c + + 是大部分文档、 博客和其他可用的材料反映的经验的 c + + 开发人员,观点不是 C# 开发人员 (他们一般不会想要生成一个单一项目控制台应用程序)。 要进一步使问题复杂化,c + + 经历了文艺复兴时期,所以大部分当前材料可能会过时,不适用或分散您的注意力从较新的、 更有效的编码技术。 辨别什么是有效和什么不是,你需要一个基本的了解的域,指示的首字母缩写词如 c + +、 C + + / CLI,C + + / CX、 WRL、 STL、 ATL、 WinRT,等等。 没有这种理解你能最终燃烧宝贵周期学习的材料,不能应用于你的目标,就是,最有可能、 斜向进刀向上快速打造 c + + Windows 应用商店的应用程序。

我在 c + + 的兴趣,这时我打了 C# 的性能最高限额与用例,不得不处理复杂的算法对超过 200,000 的记录。 我研究了我的网络广播中,"驯服 GPU 计算与 c + + AMP"(bit.ly/1dajKE6),其中提出了一个演示应用程序,改变了我对永远表现的看法。 了 c + + AMP 的经验,都无法创建概念向团队提出证明,我怀疑他们就会高兴地接受一个 c + + 组件当他们看到 11-第二个过程减少到毫秒为单位)。 不幸的是,c + + 的信息 (和造谣) 的严重程度可用、 耦合与我的 c + + 领域知识的缺乏,有我跌跌撞撞信息,寻找所载有关 Windows 存储应用程序的 c + + 开发的书籍的书架上庞大的图书馆。

这篇文章的目的是不是教你 c + +,而是你指向那个架子。 这将确保您的学习路径是明确的、 免费的浑水,和你不是在分神海量信息实际上阻止您的进度并造成你不必要的困扰。 阅读完本文后,您应该更好地装备适用的 c + + 材料,如更近的 MSDN 杂志文章、 库和 c + + 开发博客从受益。

这篇文章的代码下载是一个包含三个应用程序,基于不同的开发平台的 Visual Studio 解决方案:C#、 c + + 和 java 语言。 正如你所看到的在此解决方案中我使用缩写 Windows 应用商店的应用程序作为 Wsa 我 (这不是官方的缩写) 的项目名称。 WsaJavaScript 应用程序基于 MSDN 教程中,"演练:创建基本 Windows 运行时组件使用 WRL"(bit.ly/1n1gvV2)。 你会看到我只是添加两个按钮,分别标记为"数据绑定"和"数据绑定 (Reused)"此教程应用程序 (如中所示图 1)。 请注意,这两个 WsaXamlCpp (C + + / CX) 和 WsaXamlCs (C#) 应用程序在此解决方案中的使用同一库并产生相同的精确结果。

三个应用程序视图
图 1 三个应用程序视图 (绿色,图书馆在紫色,灰色中的用例中所示的应用程序)

C# 和 C + + / CX 应用程序演示了多么强大 Windows 应用商店中应用发展真的是 — — 你可以无缝地重用组件平台,作为的右窗格之间图 1 显示)。 例如,当您查看代码,你会发现,C# 和 C + + / CX 演示应用程序使用相同的 XAML 中,复制并粘贴到每个应用程序的各自视图 (DataBindingView)。 同样地,你会看到他们使用相同的演示者 (DataBindingPresenter)、 视图模型 (MainViewModel)、 数据访问层 (MockDataDal) 和记录器 (DebugLogger)。 与 Windows 存储应用程序开发,您可以在任何语言中,创建 C# 或 c + + 库,以便您可以在您自己的步伐,单步执行 c + + 开发和效率较低的 C# 算法替换高性能 c + + AMP 代码与最小的生产力损失。

生产力闪耀因为你可以回收所有你有用的代码。 例如,两个应用程序为记录器 (请参见输出窗口底部的图 2) 是一个 C# 组件驻留在 C# WsaWrcCs 项目。 我没有投资建设一个 c + + 记录器,可以忽略不计影响性能,并可以集中研究更关键领域的时间。 图 2 亦显示有小小区别的 C# 和 C + + 中的 DataBindingPresenter 类 ; CX 代码 此类包含大多数应用程序的代码,所有其它逻辑驻留在共享的组件 (你能在这两个应用程序项目中发现少的代码) 中。

C + + / CX 和使用相同的 C# 代码查看模型、 数据访问层和记录器
图 2 C + + / CX 和使用相同的 C# 代码查看模型、 数据访问层和记录器

除了显示 Windows 应用商店的应用程序开发电源关闭,这里介绍的解决方案提供了一个沙箱中,你可以开始 c + + 开发。 如果大多数教程和示例提供的代码 (在 Windows 应用商店的应用程序环境中具有小值),一个控制台应用程序为此解决方案给出你的示例代码中您感兴趣的适用项目类型 — — 现代 c + +、 WRL 或 C + + / CX。 你可以看到 C# 应用程序中如何方便地访问您的 c + + 代码。

虽然我要去讨论适用于 Windows 应用商店的应用程序开发的 c + + 域主题,他们不会覆盖在大深度在这里。 然而,以下应提供的基线从中你可以继续你的研究时,我将提供一些链接,所以你可以深入的详细信息,当适用时。 这项工作的重点是帮助你专注的关键主题,您需要了解,有效地过滤掉的信息,不能应用规模。 我想要承认微软 c + + 开发团队,因为他们是有助于帮助我通过大规模图书馆找架子我所需的信息所以我可能会在我成为微软 c + + 开发人员的旅程中高效的导航。

Windows 运行库 (WinRT)

WinRT 类型系统使您可以使用多种语言访问 Windows Api (即公开为 WinRT 类型),并编写的应用程序和组件使用相同的技术。 Windows 运行时基于对应用程序二进制接口 (ABI) ; 用于连接组件,以及 Api 标准。

在你看到什么图 1 是不同的开发平台的无缝集成:C#、 c + + 和 C + + / CX 以透明的方式被使用 JavaScript、 C# 和 c + + Windows 应用商店的应用程序。 为此,可能有一个标准的接口,以便他们可以使用已编译的代码坚持所有开发语言。要实现这一目标,WRL 和 WinRT 组件项目每个生成一个.winmd 文件,作为一个跨语言头文件。 请注意.winmd 文件实质上是 CLI 元数据文件 (这样就可以查看与 ILSpy)。

你的生产和消费的 ABI 使用 C + + / CX、 WRL,C# 和 JavaScript (或添加 WinRT ABI 支持的任何其他语言)。 作为 C# 开发人员您倾向可能是编写所有代码使用 C + + / CX,作为它的接近你已经习惯使用,但应尽量减少使用的尽可能多的 WinRT 和严格限制它到 ABI 的图层。 例如,您的代码应利用电源的使用只有 C + c + + + / CX 需要跨 ABI 时。 符合其设计和目的,你会发现,C + + / CX 包含只小的子集及其组件的功能,也就是说,字符串将会丢失大多数你要习惯和可能需要的功能,它不是要成为一种独立的开发语言。 了解 ABI 和其制约因素将帮助您在您的 C + + / CX 发展。 我建议审查关于专题,如"下盖与 c + + 为地铁-风格的应用程序"的通道 9 视频 (bit.ly/1k7CWLq)。

标准模板库 (STL) 是为 c + + 用户的最重要的图书馆。 模板和泛型回答这个问题,"你如何生成类型安全的泛型容器吗?"它的 c + + 中的模板和 C# 中的泛型和虽然语法是有点类似,他们是非常不同的概念。 在编译时被专门的模板。 泛型被专门在运行时。 对于 C + + / CLI,他们所不同的是,他们有不同的关键字和语法。 从 C# 的角度,如果你接近的模板,像你这样泛型你就会发现他们比较熟悉的。

作为 MSDN 库文档 (bit.ly/1bZzkTB) 表示,STL 确立了 STL 容器或其他序列您通过 STL 算法或其他定义的函数中定义的迭代器应用统一的标准。 这是 STL,这意味着,当然,你需要了解哪些算法、 迭代器和容器的共同定义。 我不会深入到这些这里,但他们稽在 MSDN 库中。

请记住 c + + STL 不是 c + + 标准库一样。 根据 MSDN 库文档,Visual Studio 2013 年的标准 c + + 库是符合标准的实现从中 c + + 程序可以对大量的函数调用。 这些函数执行的输入和输出等基本服务,并提供常用操作的高效实现 (bit.ly/1eQkPlS)。

活动模板库 (ATL) 是一套基于模板的 c + + 类,您可以创建小、 速度快的 COM 对象。 它具有特别支持关键的 COM 功能,其中包括股票实现、 双重接口、 标准 COM 枚举器接口、 连接点、 撕扯接口和 ActiveX 控件 (bit.ly/1engnjy)。 它是重要的是要知道只有一小部分的 COM 和 WINAPI WinRT 应用程序中都受支持。 画龙点睛,更好地适合 WinRT 的应用程序。

画龙点睛就像 Windows 运行时简化的 ATL。 它由一组标头和模板,可帮助您开发使用标准 c + + 功能的 WinRT 类。 它消除了大量的样板代码你否则就需要添加和减少的行计数所需大致相同,C + + / CX。 C + + / CX 是大多数开发人员,预计生产和消费 WinRT 组件,除非您需要这样做在一个代码基础,禁令的异常,或有其他特殊需要,或你只是想要避免的专有语言扩展,除非绝对必要。 WRL 是最低级别的 Windows 应用商店的应用程序接口的 c + + 开发。 它不会缺乏一些设施建设 XAML 的组件,因此您应该仅使用 C + + / CX 或 C# 创建 XAML 组件。

C++ 文档

现代 c + + (11 或更高版本) 是大大不同于以前的版本中,杨伟许多当前书籍、 博客和文章,所以要小心。 如果事情使用"新"或"删除,"它是旧的 c + +。 不,这是过时的或无用的和你就不必重写现有的代码,如 C + + 11 戏剧以及与现有代码 ; 你只不会被利用的简单性和效率的现代 c + +。

C + + / CX 是相对 C# 开发人员友好的方式来创作 WinRT 类型。 创建此语言扩展,便于生产和消费 WinRT 的类型,但它不是所需。 事实上,你可以使用 WRL 做相同的但不是一样轻松地或直接地。 请注意,C + + / CX 借用 C + + / CLI 的语法,但针对不同的运行时。

C + + / CLI 通常不用于 Windows 桌面开发。 通常情况下,它仅用于托管代码在极为狭窄的情况下。 例如,某些现有的本机代码执行一个任务好和您想要将其公开为从托管代码中,使用简单但你想要向托管代码公开的接口并不最理想的是通过 COM 或 P/Invoke 公开。 观众为 C + + / CLI 是很小很小。 我已经指出它在这里只是因为之间的相似性 ^ (hat) 表示法和它造成混乱,如某些 CLI 代码样本的潜力就会符合 C + + / CX。

这两个 C + + / CLI 和 Windows 应用商店编写的应用程序和 C + + / CX 使用帽子表示法。 您可以使用 WinRT 组件在 Windows 桌面 (不是 Windows 存储区) 应用程序用 C + + / CX,你在这种情况下使用这顶帽子。 您还可以使用 WinRT 组件在 Windows 应用商店和 Windows 桌面应用程序中使用 c + +,在这种情况下应用程序不会使用这顶帽子。

当研究互联网,它是个好主意,先于您的搜索与"现代 c + +"或"C + + / CX"以确保您会被查看的相应文档。

一堂历史课

在过去,软件可重用性意味着提供对组件的访问,而不一定为他人付出的代码访问权限。 这可以通过提供一个头 (.h) 文件,然后使用其他开发人员可以将.lib 链接到不同的应用程序的静态链接的库 (.lib) 文件 — — 标头提供接口和库编译的源代码。

这种做法的固有的问题之一是它可以使用的内存和磁盘空间量。 例如,一个 2 MB 库编译成的六个应用程序的软件套件采用 12 MB 的磁盘空间。 当然,在时间的平均 XT 兼容 PC 磁盘容量是 20 MB。 与出现的 DLL 来了一整套单一的代码在多个应用程序间共享的能力。 这,六个应用程序现在就只有 2 MB,可以使用相同的库。

详细信息、 利弊与 Dll 的静态库是这篇文章的范围之外。 在 MSDN 库文档中,你会发现对这两个库的详尽引用。

静态库和 Dll 有一个地方在建设现代 c + + 库。 然而,如果你想构建可重用组件,可以轻松地访问由 JavaScript、 c + + 和 C# Windows 应用商店的应用程序,您需要抵制来选择 (到的 C# 开发人员习惯于) 的 Windows 应用商店应用程序 DLL 的本能反应。 当您稍后将看到,它不是 DLL 你知道它。 相反,你会想要选择的项目模板的 WinRT 组件 (,作为 WRC 提及)。 这是 Microsoft 的建议,并提供一个你习惯于最接近的发展经验。

项目模板

对于 C# 开发人员,添加新的库很简单 — — 你添加一个类库项目,并使用它来构建您的接口、 类和等。 引用类库是一样容易,因为您只需添加到您的类库项目从您的应用程序或其他类库的引用 — — 在其最好的生产力。

不幸的是,建立 c + + 库是远不如直截了当和写这篇文章,你不会找到大量的文档和示例如何设置 Visual Studio 为可重用组件,发展特别是有关配置各种可用的项目模板类型。 以下内容将帮助您设置 Visual Studio 使用 Windows 存储应用程序 c + + 项目模板。

WinRT 组件

为 MSDN 库文档"Dll (C + + / CX)"表明当你需要创建的 Windows 应用程序商店的 DLL 时,应创建它作为 WinRT 组件使用该名称的项目模板 (bit.ly/1iwL1Wg)。 如上所述,此选项将提供用于添加和引用库最熟悉的经验。

作为图 2 显示,有很多的相似之处之间 C + + / CX 和 C# 中,因此,C# 开发人员应该能够快速年产量提高到 c + +。 有关 WinRT 组件有趣的是它是透明的 C# 和 c + + Windows 应用商店的应用程序,为 C# 开发人员提供一种手段,重点放在生产效率和性能,视情况而定。 因此,正如我较早前,指出如果要重复使用现有的 C# 记录器组件在应用程序的 c + + XAML Windows 存储区中,所有你要做是的端口到一个 C# WRC 项目和你的代码做完了。 你可以现在引用它从 c + + 和 C# 应用程序 (如示例解决方案中做了)。

请记住因为 ABI 不会施加一些限制,例如需要类,因此必须密封,你得看看从新的角度,一种强调"在抽象,组成"借本身很好地为构建复合应用程序的发展。

WRL 类库项目模板

WRL 类库项目模板是一组用户定义的类使用画龙点睛构建。 不幸的是,WRL 教程和解释可以是相当艰巨的。 作为赛车和理解 WRL 类库项目模板的简介,我建议你按照教程"演练:创建基本 Windows 运行时组件使用 WRL"(bit.ly/1n1gvV2)。 你就会深刻的印象如何,使用几行代码,您可以访问您的 c + + 代码从 JavaScript 应用程序,只需添加到库的引用。 本教程是为我提供了该示例解决方案的基础。

本教程是重要的那些新的赛车,因为它还提供了用于生成使用 WRL 类库模板 WRL 项目的重要环节。 此模板包含必要的信息来调用该 MIDL 编译器,处理 IDL 文件 (请参阅 bit.ly/1fLMurc 的详细信息)。 在幕后,MIDL 编译器生成的必要 (隐藏) 文件为 Contoso WRL 项目,照顾所有的 WRL development—contoso_h.h、 contoso_i.c 和 contoso_p.c 关联的开销。 您会看到从本教程中,都要创建的 contoso.idl 和 contoso.cpp 的文件,其中图 3图 4 分别显示。 请注意我添加的 AddStr (字符串,字符串) 功能 ; 这不是本教程的一部分。

图 3 Contoso.idl

导入"inspectable.idl"; 导入"Windows.Foundation.idl"; 导入"ocidl.idl"; #define COMPONENT_VERSION 1.0 命名空间 Contoso {接口 ICalculator ; runtimeclass 计算器 ; [uuid(0be9429f-2c7a-40e8-bb0a-85bcb1749367)、 version(COMPONENT_VERSION)、 exclusiveto(Calculator)] ICalculator 的接口:IInspectable {/ / msdn.microsoft.com/library/jj155856 / / 演练:创建基本 Windows 运行时组件使用 WRL HRESULT Add([in] int a, [in] int b, [out, retval] int* value) ; HRESULT AddStr([in] HSTRING a, [in] HSTRING b, [out, retval] int* value) ; } [version(COMPONENT_VERSION),activatable(COMPONENT_VERSION)] runtimeclass 计算器 {[默认] 接口 ICalculator ; } }

图 4 Contoso.cpp

#include"pch.h" #include"Contoso_h.h" #include <wrl.h> #include<字符串>#include<内存>#include"Calculator.h" 使用命名空间 std ; 使用命名空间 Microsoft::WRL ; 使用命名空间 Windows::Foundation ; 命名空间 ABI {Contoso 的命名空间 {类计算器:公共 RuntimeClass<ICalculator> {InspectableClass BaseTrust RuntimeClass_Contoso_Calculator) 市民:/ / 使用一个外部的 c + + Windows 存储应用程序 DLL 处理字符串 / / 请注意:WRL 不允许重载函数 HRESULT __stdcall AddStr (_In_ HSTRING,_In_ HSTRING b、 _Out_ int * 值) {/ / 转换 HSTRING 值转换 const wchar_t * / / 所以你可以将它们传递到 c + + DLL const wchar_t * buffera = WindowsGetStringRawBuffer (,nullptr) ; const wchar_t * bufferb = WindowsGetStringRawBuffer nullptr b) ; / / 实例化计算器使用现代方法 — — 引用 / / msdn.microsoft.com/library/hh279669 自动除垢 = 这样<WsaDllCpp::Calculator>(); / / 添加的字符串值自动 val = calc->添加 bufferb buffera) ; / / 将值分配 * 值 = val; 返回 S_OK ; } / / msdn.microsoft.com/library/jj155856 / / 演练:创建基本 Windows 运行时组件使用 WRL HRESULT __stdcall 添加 (_In_ int _Out_ int * 值 a、 _In_ int b) {如果 (值 = = nullptr) {返回 E_POINTER; } * 值 = a + b; 返回 S_OK ; } }; ActivatableClass(Calculator) ; } }

正如与 C# 类库,使用 WRL 组件从外部项目或应用程序只需您添加到此项目的引用。

静态库

当你在重建使用当前工具为每个项目的代码和你想要放在代码中调用的开销最低,静态库是适当的。 这是选择如果你大概不会使用完全相同的二进制跨多个项目在不同时间兴建的选项。

编译器需要知道才能成功地将已编译的代码链接到应用程序中的静态库 (.lib) 和其相关联的头 (.h) 的位置。 这可以通过右击解决方案并选择通用属性 |从项目列表中,并检查该.lib 文件 (WsaLibCpp) 作为依赖项的项目依赖项,然后您的项目 (WsaWrcCpp)。 然后,右键单击该项目 (WsaWrcCpp),选择属性 |通用属性 |引用 |添加新引用 |Solution|和项目,然后选择您的.lib 文件 (WsaLibCpp)。

现在,可以让知道在哪里可以找到.lib 项目头文件的项目。 如果您要运行该示例解决方案通过,WsaWrcCpp (WRC) 项目上单击鼠标右键并选择属性 |配置属性 |C/C + + |一般和集"附加包含目录"位置的头文件,在这种情况下,将是 WsaLibCpp 元 (SolutionDir) ;<现有路径>。

DLL

可下载的示例解决方案你会发现 Windows 存储 DLL 应用程序的 c + + 项目命名为 WsaDllCpp (如在图 2)。 我用的 MSDN Library 的文章,"演练:创建和使用动态链接库 (c + +)"(bit.ly/1enxzWc) 作为参考。 请注意,此项目是出于演示的目的只是作为使用此 DLL (在我与 Microsoft c + + 开发人员和审阅者的通信) 感到沮丧。 我已经包括它,因为您可能需要在您的 Windows 存储应用程序中使用现有的 Dll。

与这一点,WsaDllCpp DLL 给解决方案 Contoso WRL (前面讨论过的 WRL 类库模板),能够将两个字符串添加在一起 ; 例如,WsaDllCpp::Calculator::Add("1000","2000") 收益率 3000。 如你所知它下面的接口代码突出显示超过 C# DLL 的 c + + DLL 之间的区别:

一次 #include #pragma<字符串>#define WSADLLCPP_API __declspec(dllexport) 命名空间 WsaDllCpp {类计算器 {公开:WSADLLCPP_API int 添加 const wchar_t * 二号油井 const wchar_t * 朗博王) ; WSADLLCPP_API int Add (int 朗博王,二号油井 int) ; }; }

正如您所看到的有一点点与使函数可见到外部库和应用程序 (__declspec) 相关的开销。 同样,若要成功地将 WsaDllCpp 编译到应用程序所需的设置超越仅仅设置项目的引用。 我不得不 Contoso WRL 项目上单击鼠标右键并选择属性 |配置属性 |C/C + + |一般和一套"附加包含目录"到的头文件的位置。

C# 开发人员可能会发现添加对 DLL 的引用不是直观的或至少不是什么你已经习惯了,因为通常是"引用"链接,用鼠标右键单击项目列表 (其中你会发现在 WRC 项目)。 因为的.lib 文件,添加的引用你必须以右键单击该项目,然后选择添加 |引用,,然后单击添加新引用按钮。

与不同的是用 C# 开发,您不能假设你选择的路径将被转换为相对路径 — — 他们是不会。 习惯于使用 Visual Studio 宏来指定您的路径,最好。 我不得不为前面的示例将"附加包含目录"设置为 WsaDllCpp 美元 (SolutionDir) ; <现有路径>。

总结

一旦你磨练中,正确的书架上,你就会发现了丰富的信息 (特别是在 MSDN Library),使您的学习过程更有效率和奖励。 一个基本的了解 c + + 域的这第一步将帮助您在您的研究和开发 c + + Windows 应用商店的应用程序。 有太多不能应用的信息 (如旧版的 c + +、 MFC 中,C + + / CLI 和大部分为 ATL) 这种意识会阻止你浪费宝贵的周期时间上的材料,可以带你去一个死胡同下来很长的路。

我还建议您查看肯尼 Kerr MSDN 杂志文章 (bit.ly/1iv7mUQ) 和通道 9 (bit.ly/1dFqYjV),以及迈克尔 B. 麦克劳林的文章在 bit.ly/1b5CDhs。 (在这个网站上未列出的宝贵资源是他"C# 对 c + +-A 有点短指南"可在 bit.ly/MvdZv4.)

如果你把你的注意集中在 C + + / CX、 现代 c + + 和上使用的 WinRT 组件,你就可以很你实现你的目标在 Windows 应用商店应用程序开发环境中的方式。

Bill Kratochvil 是全球网络有限责任公司,执行合同软件体系结构和发展基于阿马里洛 (得克萨斯州) 公司的所有者。目前,Kratochvil 是对医疗行业的领先企业的合同。

衷心感谢以下 Microsoft 技术专家对本文的审阅:穆罕默德 · 阿尔-塞卜特、 约翰 · Cuyle、 Chris Guzak、 弗特斯克 · Kaduk、 Ben 库恩和托马斯 Petchel。 此外,还要感谢史蒂文 · 索思威克。
John Cuyle 是在 Microsoft 工作室工作室出版集团发展中的软件开发。他有超过十年经验开发 c + +,在游戏和多几年经验玩他们。
Ben 库恩已在 Microsoft 开发人员 11 年来,从印刷到剪贴板到 Windows 运行时的技术工作。 最近,本为 Windows 运行库的 c + + 语言扩展设计了贡献和帮助创建 Windows 8.1 示例包。
托马斯 Petchel 是 Visual c + + 的高级内容发布经理,八年来一直与团队。 他喜欢 c + + 为其动力、 性能和控制,并认为你也应该。
弗特斯克 · Kaduk 是在 Microsoft/Skype 团队,在.NET 中的 10 多年经验的高级软件开发工程师。 他是团队开发的 8.x 版 Skype 为 Windows 应用程序的成员。 他很少上博客 https://blogs.msdn.com/b/fkaduk
史蒂文 · 索思威克是。 净开发人员主要集中在使用蒙特卡罗模拟和分析技术的临床试验注册建模。