Windows (Windows RuntimeWinRT) Modern UIAPIWindows 8[1][2] WinRTC++/CX (C++ Component Extensions)C#VB.NETJavaScriptTypeScriptWindows SDK 10.0.17134.0 C++/WinRT[3]

WinRTx86/x64/ARM/ARM64[1]

概要

編集

WinRTC++APIWin32 APICAPIC/C++COMAPICOM

COMWinRT API".winmd"ECMA 335.NET[5]P/InvokeWinRT.NETCOM.NET.NETCOMCOM.NET[6]WinRTWinRT.NET.NETWinRTC++/CX[7]

C++/CX (Component Extensions) C++/CLIC++COMWinRTC++/CLIC++class/structWinRTref class/ref struct/value class/value struct[2]C++/CXC++WinRT使C++/CXABI使[9]COMC++Windows Runtime C++ Template Library (WRL) WinRT[10]WRLCOMATL[11][12]C++17C++/WinRTC++/CXWRL[3]

C#C++C++C#P/InvokeCOMC++/CLIWinRTC++/CXC++/WinRTP/Invoke

歴史

編集

WinRT2011912Microsoft BuildWindows 8C++/CXWinRTVisual Studio 2012Visual Studio 11Visual Studio 2012Windows 8WinRTVisual Studio 2013Windows 8.1WinRTVisual Studio 2013Windows 8WinRTVisual Studio 20122013[13]

Visual Studio 2015Windows 10Universal Windows Platform, UWPWinRT[14]Visual Studio 2015Windows 8.1WinRT

技術

編集

WinRTABI

WinRTWinRT APIWin32 APIWin32 APIWin32 API[15]Win32 APIMicrosoft .NET Framework使

サービス

編集

メタデータ

編集

WinRTWinRT C++BUILDWinRT.NET[9]WINMD.NET[16]

.NETWinRT.NET

型システム

編集

WinRTWinRT.NET Framework

COMWinRTABI.NETC++/CXgenerictemplateWinRT (ref class) C++.winmdprivateWinRTWinRTprivate[17]WinRT (genericity) WinRTC++STL (Standard Template Library) C++/WinRTSTLWinRT[18][19].NETC#VB.NETJavaScriptWinRTC++WinRTCOMWinRTWinRT.NET使[20][21]C++STL使ABIWinRT使[22]

WinRTHSTRING (opaque type) HSTRINGC++/CXPlatform::StringC++/WinRTwinrt::hstring.NETSystem.StringJavaScriptString[23]

WinRT コンポーネント

編集

WinRTを対象とするようにコンパイルされたクラスは、WinRTコンポーネントと呼ばれる。これらはサポートされている任意の言語およびプラットフォームで使用できる自己完結型のクラスである。これらのクラスにはメタデータが定義されており、多くの言語からコンポーネントを呼び出すことが可能となる。ランタイムでは、定義済みのインターフェイスタイプまたは.NETタイプのインターフェイスを使用するために.NET Frameworkで構築されたWinRTコンポーネントが必要となる。これらのインターフェイスは、デフォルト名に自動的にマップされる。継承は、XAMLクラスを除いて、マネージドWinRTコンポーネントではまだサポートされていない。[24]

プログラミングインターフェイス

編集

WinRT使C/C++WinRTC ++ .NETCVB.NETJavaScript使

WinRT

C++ (C++/WinRT, C++/CX, WRL)

編集

C++WinRTC++WinRT使2WRLATLC++/CLIC++/CX C ++ 

WRLCOMHRESULTC++/ CXWinRT

C++/CXC++/ CLIWinRTref newC++/CLIgcnew^C++vtablevptr

WinRTC++C ++使C /C++

.NETFrameworkCLRWinRTWinRT.NETWinRTWin32API

WinRTCVB.NETXAML.NET Metro.NET使

JavaScript

編集

WinRTJavaScriptMicrosoftHTML5JavaScriptWindows 8InternetExplorer9ChakraJavaScriptWinRT

JavaScriptWinRTWinRTJavaScript

JavaScript

HTML5CSSJavaScript使

JavaScript 5

WinRTは、Modern UI(旧称:Metro UI)のような、Windows 8の機能を開発者に公開するクラスライブラリの形でApplication Programming Interface (API) を搭載している。WinRTはサポート対象となるあらゆる言語から利用可能である。

Windowsクラス

編集

Windowsクラスは、WinRTによって公開されるネイティブな(アンマネージドな)低レベルのC/C++ライブラリである。XAMLパーサーからカメラ機能までの すべての機能へのアクセスを提供する。

命名規約

編集

APIのコンポーネント(クラスおよびその他のメンバー)の命名規則は、キャメルケースを使用しているが、JavaScriptのように異なる命名規約を持つ言語ではその言語の命名規則に沿った形で提供されている。

脚注

編集

注釈

編集


(一)^ Windows 8.xx86/x64/ARMWindows 10Windows64ARMARM64[4]

(二)^ C++/CLIgcroot[8]

出典

編集


(一)^ Abel Avram (2011921). Design Details of the Windows Runtime. InfoQ. 2011927

(二)^ Brian Klug & Ryan Smith (2011913). Microsoft BUILD: Windows 8, A Pre-Beta Preview. AnandTech. 2011927

(三)^ abIntroduction to C++/WinRT - UWP applications | Microsoft Docs

(四)^ Official support for Windows 10 on ARM development - Windows Developer Blog

(五)^ http://tirania.org/blog/archive/2011/Sep-15.html

(六)^ COM  - 1 : C#   (C#), Internet Archive

(七)^ http://social.msdn.microsoft.com/Forums/en-US/winappswithcsharp/thread/d510d916-a090-412c-a17f-e4421ad9a137/

(八)^ How to: Declare Handles in Native Types | Microsoft Docs

(九)^ abhttp://channel9.msdn.com/Events/BUILD/BUILD2011/TOOL-532T

(十)^ http://www.codeproject.com/KB/cpp/WinRTVisualCppIntro.aspx

(11)^ http://channel9.msdn.com/Events/BUILD/BUILD2011/TOOL-532T#c634517976543836549

(12)^ Windows Runtime C++ Template Library (WRL) | Microsoft Docs

(13)^ Visual Studio 2013 Compatibility | Microsoft Docs

(14)^ Develop apps for the Universal Windows Platform (UWP) - Visual Studio 2015 | Microsoft Docs

(15)^ WinRT and .NET in Windows 8 (Paragraph 5). 201282920111016

(16)^ http://www.ciprianjichici.ro/blog/post/NET-Gets-a-New-Lease-of-Life.aspx

(17)^ Template ref classes (C++/CX) | Microsoft Docs

(18)^ Standard C++ data types and C++/WinRT - UWP applications | Microsoft Docs

(19)^ Interop between C++/WinRT and the ABI - UWP applications | Microsoft Docs

(20)^ Windows Runtime components with C# and Visual Basic - UWP applications | Microsoft Docs

(21)^ 2 WindowsmrubyWindows1/3  - IT

(22)^ Collections (C++/CX) | Microsoft Docs

(23)^ HSTRING (Hstring.h) - Win32 apps | Microsoft Docs

(24)^ http://channel9.msdn.com/Events/BUILD/BUILD2011/TOOL-531T

関連項目

編集

外部リンク

編集