本文章是由機器翻譯。

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 代碼 此類包含大多數應用程式的代碼,所有其它邏輯駐留在共用的元件 (你能在這兩個應用程式專案中發現少的代碼) 中。


圖 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 庫文檔,標準 c + + 庫Visual Studio2013年中是符合標準的實現從中 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) 這種意識會阻止你浪費寶貴的週期時間上的材料,可以帶你去一個死胡同下來很長的路。

我還建議您查看KennyKerr MSDN 雜誌文章 (bit.ly/1iv7mUQ) 和通道 9 (bit.ly/1dFqYjV),以及MichaelB. 麥克勞林的文章在 bit.ly/1b5CDhs。 (在這個網站上未列出的寶貴資源是他"C# 對 c + +-A 有點短指南"可在 bit.ly/MvdZv4.)

如果你把你的注意集中在 C + + / CX、 現代 c + + 和上使用的 WinRT 元件,你就可以很你實現你的目標在 Windows 應用商店應用程式開發環境中的方式。

Bill Kratochvil 是全球網路有限責任公司,執行合同軟體體系結構和發展基於阿馬里洛 (德克薩斯州) 公司的擁有者。目前,Kratochvil 是對醫療行業的領先企業的合同。

感謝以下 Microsoft 技術專家對本文的審閱:穆罕默德 · 阿爾-塞卜特、JohnCuyle、ChrisGuzak、 弗特斯克 · Kaduk、Ben庫恩和ThomasPetchel。 此外,還要感謝史蒂文 · 索思威克。
JohnCuyle 是在 Microsoft 工作室工作室出版集團發展中的軟體發展。他有超過十年經驗開發 c + +,在遊戲和多幾年經驗玩他們。
Ben庫恩已在 Microsoft 開發人員 11 年來,從印刷到剪貼簿到 Windows 運行時的技術工作。 最近,Ben為 Windows 運行庫的 c + + 語言擴展設計了貢獻和説明創建 Windows 8.1 示例包。
ThomasPetchel 是 Visual c + + 的高級內容發佈經理,八年來一直與團隊。 他喜歡 c + + 為其動力、 性能和控制,並認為你也應該。
弗特斯克 · Kaduk 是在 Microsoft/Skype 團隊,在.NET 中的 10 多年經驗的高級軟體發展工程師。 他是團隊開發的 8.x 版 Skype 為 Windows 應用程式的成員。 他很少上博客 HTTP://blogs.msdn.com/b/fkaduk
史蒂文 · 索思威克是。 淨開發人員主要集中在使用蒙特卡羅類比和分析技術的臨床試驗註冊建模。