C# で使用できる C++ WinRT コンポーネントを作成できると言われています。簡単なテスト プロジェクト (C# XAML アプリと、基本的な WinRT コンポーネント プロジェクト テンプレートのみを使用する C++ プロジェクト) があります。C# XAML プロジェクトにプロジェクト参照を追加しようとすると、参照を追加できないと表示されます (理由は不明です)。ネイティブ WinRT コンポーネントをビルドすると、.winmd ファイルが生成されます。参照の追加ダイアログの参照ボタンを使用して、この .winmd ファイルへの参照を手動で追加できます。これにより、ネイティブ ライブラリのメソッドにアクセスできますが、ビルドすると、Platform.IDisposable を使用していると表示されますが、その型は参照されていないアセンブリで定義されています。このシナリオを示すセッションは見たことがありません。
5456 次
3 に答える
8
答えが見つかりました!グリッチのように見えますが、回避策があります: http ://social.msdn.microsoft.com/Forums/en-US/winappswithnativecode/thread/1900bd21-8693-4127-800a-f35cfd5daac2
基本的に、最初にWinRTコンポーネントプロジェクトをクリーンアップし、次に参照を追加し、次に\ VC \ binにあるplatform.winmdに手動で参照を追加すると、準備が整います。
于 2011-09-21T14:41:10.720 に答える
2
そのため、Microsoft.VCLibs への参照を追加した後、同様の問題に遭遇しましたが、展開できませんでした。ただし、デフォルトで WinRT コンポーネントは x86 コードにコンパイルされているのに対し、C# Metro スタイル アプリは任意の CPU をターゲットにしていることに気付きました。これが私の場合の根本的な原因でした。C# アプリを x86 に切り替えると、問題は解決しました。
于 2011-09-25T11:09:59.150 に答える
2
参照している C++ WinRT アセンブリは、おそらく IDisposable インターフェイスを実装しているオブジェクトを使用するため、インターフェイスを含む C++ アセンブリも参照する必要があります。
于 2011-09-20T22:14:56.740 に答える