4

Windows 8 の開発では XAML/HTML5 + C++ アプリが許可されると聞きましたが、それはネイティブのアンマネージド C++ ですか、それともマネージド C++ (以前の C++ .NET) ですか?

4

3 に答える 3

7

Windows ランタイム (WinRT)自体はネイティブのアンマネージド フレームワークですが、マネージド .NET 言語から簡単に呼び出すことができます (他のネイティブ ライブラリや悪名高い .NET と比較してP/Invoke)。

ただし、マネージ言語から使用するだけでなく、C++/CX から呼び出すこともできます。これは、.NET の C++/CLI に似た標準 C++のMicrosoft拡張です。しかし、後者とは対照的に、それは完全にネイティブなアンマネージ C++ です。^ただし、「マネージド型」ポインターの演算子など、C++/CLI の拡張機能の一部をサポートしています。しかし、内部では、これらは実際にはマネージド ガベージ コレクト ポインターではなく、ネイティブの参照カウント ポインターであり、std::shared_ptr. また、 WinRTXAMLフレームワークと連携するために、.NET のようなプロパティとデリゲート、および部分クラスもサポートしていると思います。

それに加えて、いわゆるWindows ランタイム C++ テンプレート ライブラリ (WRL)を使用して標準 C++ からWinRTを使用することもできますが、C++/CX よりも面倒であると言われ、次のようなすべての機能を使用できない場合があります。簡単なXAMLインターフェイス、それについてはわかりません。

于 2012-09-12T09:26:31.430 に答える
2

WinRT コンポーネントに組み込むのはアンマネージ C++ です。これらのコンポーネントは、HTML5 または Win8 .NET アプリから参照できます。

于 2012-09-12T09:20:43.670 に答える
0

Slugart の良い答えに加えて、WinRT アプリケーション (および Java Script) 用のアンマネージ C++ を作成できます。また、Microsoft がこの機能を拡張して、アンマネージ C++ を Windows Phone 8 にも書き込めるようにする可能性があります (現在は不可能です)。私自身を含むいくつかの開発チームへの主要な言及。

于 2012-09-12T09:24:45.003 に答える