昨年 10 月に開催された Microsoft ビルド カンファレンスを見ていましたが、新しい Metro スタイル アプリをビルドするために、開発者が C# でネイティブ コードを記述できると発表していることに気付きました。これはどのように可能ですか?私はただ興味があります。C# は (CLI 標準の一部として) 最初に中間バイト コードにコンパイルされ、次に仮想マシンで実行されるように設計されていませんでしたか? 仮想マシンで実行されるものを「ネイティブ コード」と呼ぶにはどうすればよいですか?
質問する
1857 次
2 に答える
4
マネージ コードからネイティブ コードを呼び出すことは常に可能でした。通常、ある時点でウィンドウと対話する .net アプリはすべて、制御をネイティブ コンポーネントに渡します。
従来、手動でネイティブ コードを呼び出すには、PInvoke (プラットフォーム呼び出し) を使用していました。これにより、マネージ コードは、DLL に実装されているアンマネージ関数を呼び出すことができます。
現在の新機能は Windows ランタイムで、基本的に拡張された COM ベースの API です。ここでそれについて読むことができます-http://en.wikipedia.org/wiki/Windows_Runtime-プロセスを簡単にし、耳障りにしないようにするだけです。
編集-明確にするために、プレゼンテーションは、c#をネイティブコードにコンパイルできるというものではありませんでした。これはまだ不可能です。彼らは、c# にネイティブ コードへの呼び出しを含めるための新しい (よりクリーンな) メカニズムを提供するものとして winrt を宣伝していました。
于 2012-06-23T06:53:30.680 に答える