Windows 8 の開発では XAML/HTML5 + C++ アプリが許可されると聞きましたが、それはネイティブのアンマネージド C++ ですか、それともマネージド C++ (以前の C++ .NET) ですか?
3 に答える
Windows ランタイム (WinRT)自体はネイティブのアンマネージド フレームワークですが、マネージド .NET 言語から簡単に呼び出すことができます (他のネイティブ ライブラリや悪名高い .NET と比較してP/Invoke
)。
ただし、マネージ言語から使用するだけでなく、C++/CX から呼び出すこともできます。これは、.NET の C++/CLI に似た標準 C++のMicrosoft拡張です。しかし、後者とは対照的に、それは完全にネイティブなアンマネージ C++ です。^
ただし、「マネージド型」ポインターの演算子など、C++/CLI の拡張機能の一部をサポートしています。しかし、内部では、これらは実際にはマネージド ガベージ コレクト ポインターではなく、ネイティブの参照カウント ポインターであり、std::shared_ptr
. また、 WinRTのXAMLフレームワークと連携するために、.NET のようなプロパティとデリゲート、および部分クラスもサポートしていると思います。
それに加えて、いわゆるWindows ランタイム C++ テンプレート ライブラリ (WRL)を使用して標準 C++ からWinRTを使用することもできますが、C++/CX よりも面倒であると言われ、次のようなすべての機能を使用できない場合があります。簡単なXAMLインターフェイス、それについてはわかりません。
WinRT コンポーネントに組み込むのはアンマネージ C++ です。これらのコンポーネントは、HTML5 または Win8 .NET アプリから参照できます。
Slugart の良い答えに加えて、WinRT アプリケーション (および Java Script) 用のアンマネージ C++ を作成できます。また、Microsoft がこの機能を拡張して、アンマネージ C++ を Windows Phone 8 にも書き込めるようにする可能性があります (現在は不可能です)。私自身を含むいくつかの開発チームへの主要な言及。