質問

C# で使用したい IDL ファイルで定義されたインターフェイスがあります。IDL を C# で使用できるものに変換する方法はありますか?

役に立ちましたか?

解決

一つの方法は、タイプライブラリ(.TLB)を作成するために、IDLでMIDLを実行することです。これは、IDLでlibraryブロックが必要です。あなたは.TLBを持っていたら、C#の定義/相互運用機能DLLを得るためにそれにtlbimp.exeを実行することができます。

他のヒント

IDL ではどのようなデータ型/構造が使用されますか?組み込み型がまだない場合は、最初に C# でデータ型を定義する必要があります。

次のツールを使用して構造を変換できますが、出力を手動で確認する必要があります。

ダウンロード: http://download.microsoft.com/download/f/2/7/f279e71e-efb0-4155-873d-5554a0608523/CLRInsideOut2008_01.exe

このユーティリティについては、次の場所で説明されています。 P/Invoke の Windows API 定数と構造体へのアクセス.

2008 年 1 月のオリジナルの記事は現在、 .CHM ヘルプ ファイルのダウンロード, の下部にリンクされています https://msdn.microsoft.com/magazine/msdn-magazine-issues. 。現時点では、ソースコードは次の場所にあります。 http://clrinterop.codeplex.com/.

たとえば、私は最近、XPS印刷APIを使用してxpsobjectmodel.hインタフェースを必要としました。 Windows SDKのは幸いxpsobjectmodel.idlが付属しています。

私が最初にMIDLとTLBファイルを生成し、中に追加する準備ができて、適切なDLLアセンブリを生成します。tlbimpを使用「参照を...」私のC#プロジェクトでのセクションます。

、プロジェクトのフレームワークの正しいバージョンでツールを使用してください。プロジェクトのフレームワークは3.5ベースされている場合例えば、4.0ツールセットからtlbimpと使用することはできません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top