23

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

4

3 に答える 3

6

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

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

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

このユーティリティについては、Accessing Windows API Constants and Structs for P/Invokeで説明されています。

元の 2008 年 1 月の記事は、 https://msdn.microsoft.com/magazine/msdn-magazine-issuesの下部にリンクされている.CHM ヘルプ ファイルのダウンロードとしてのみ利用できるようになりました。とりあえず、ソース コードはhttp://clrinterop.codeplex.com/にあります。

于 2009-08-20T17:46:08.843 に答える
2

たとえば、私は最近 XPS Print API を使用しており、xpsobjectmodel.h インターフェイスが必要でした。幸いなことに、Windows SDK には xpsobjectmodel.idl が付属しています。

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

プロジェクト フレームワークに適したバージョンのツールを使用してください。たとえば、プロジェクト フレームワークが 3.5 ベースの場合、4.0 ツールセットの tlbimp を使用しても機能しません。

于 2014-10-31T17:59:36.837 に答える