2011-09-20 8 views
6

新しいWinRTはアンマネージドフレームワークであり、COMに基づいていると聞きましたが、何とかWinRTとマネージコード間のマッピングを容易にするための何かを見つけました。私はこのメカニズムがどのように機能するのか知りたいですか?WinRTとマネージド間のマッピングはどのように機能しますか?

+0

この質問に対する回答は、こちらをご覧ください。http://stackoverflow.com/questions/7416826/how-does-the-new-windows-8-runtime-compare-to-silverlight-and- wpf –

答えて

9

Windowsランタイムは、さまざまな言語の投影(C++、JavaScript、およびC#)が読み込むメタデータのすべてのAPIを表します。

APIのシェイプはメタデータで記述されているため、言語ランタイムとコンパイラはAPIを推論し、それらのAPIのコードを生成する方法を知ることができます。

メタデータの形式がCLRで使用されるCLIメタデータ形式であるECMA 335であるため、CLRの場合、ジョブは少し簡単です。そのため、翻訳はCLRにとってやや簡単です。

しかし、一般に、マシン上に存在するすべてのAPIを機械で読み取ることができれば、変換は簡単です。

+0

答えに感謝します。このメタデータがどこにあるのかを記述する資料または資料がありますか?このメタデータはどのように作成され、読み取られるのですか? – gyurisc

+0

私はここに私の質問に見つかりました - http://stackoverflow.com/questions/7416826/how-does-the-new-windows-8-runtime-compare-to-silverlight-and-wpf – gyurisc

+2

他に大きな変化がありますすべてのWinRTコンポーネントには.NETアセンブリと同様にメタデータが用意されています。 COMでは、あなたはちょっとタイプライブラリを持っていましたが、すべてのCOMコンポーネントにはありませんでした。 WinRTの場合、メタデータは.winmdファイルに含まれています。開発者プレビューの「C:¥Program Files(x86)¥Windows Kits¥8.0¥Windowsメタデータ」内を参照してください。あなたが目の当たりにすると、実際にはコードなしのCLIアセンブリ、メタデータテーブルだけであることがわかります。実際にILDASMでそれらを開くことができます。これは、WinRT自体が管理されているわけではなく、単にファイル形式を再利用することを意味しています。 – gyurisc

関連する問題