38

COM オブジェクトとして公開されているさまざまなオブジェクトを使用する予定です。使いやすくするために、C# オブジェクトとしてラップしたいと思います。これに最適なアプローチは何ですか?

4

2 に答える 2

42

ライブラリが既に登録されている場合は、次の手順を実行して、Visual Studio に相互運用アセンブリを生成させることができます。

  • Visual Studio プロジェクトを開きます。
  • [参照] (ソリューション エクスプローラーのプロジェクトのすぐ下) を右クリックし、[参照の追加] を選択します。
  • [COM] タブを選択します。(これが表示されない場合は、プロジェクトの種類が COM をサポートしていません。)
  • 相互運用するコンポーネントを選択します。
  • [OK] を選択します。

これは、すべての COM インターフェイスを通常の C# クラスでラップするクラスまたは C# クラスのセットになります。あとは、他の C# ライブラリと同じように使用するだけです。参照のインポートがうまくいった場合は、他の参照と同じように調べることができ、メソッド/構造体/クラス/定数がその名前空間とインテリセンスに表示されるはずです。

これで、少なくとも開始できます。これが企業環境または制御可能な環境に展開されている場合、これで十分な場合があります。

于 2009-03-11T18:55:27.483 に答える
5

(最初は)参照をインポートするだけです。さらに制御が必要な場合 (または VS のインポートからエラーが発生した場合) は、Windows SDK で tlbimp を使用できます。これにより、相互運用アセンブリが作成されます。メタデータからクラス定義を取得できます。

編集:64ビットで作業したい場合、これは実際にはもっと複雑です

于 2009-03-11T18:48:09.547 に答える