COM 相互運用の概要 (Visual Basic)

コンポーネント オブジェクト モデル (COM) を使用すると、オブジェクトはその機能を他のコンポーネントに公開したり、アプリケーションをホストしたりできます。 COM オブジェクトは、長年にわたって Windows プログラミングの基礎となっていますが、共通言語ランタイム (CLR) 用に設計されたアプリケーションには多くの利点があります。

COM (COM 相互運用機能) との相互運用性により、.NET アプリの既存の COM オブジェクトを使用できます。

.NETを使用して COM コンポーネントを作成すると、登録不要の COM 相互運用機能を使用できます。 これにより、コンピューターに複数のバージョンがインストールされている場合に有効にする DLL のバージョンを制御でき、エンド ユーザーは XCOPY または FTP を使用して、実行できるコンピューター上の適切なディレクトリにアプリケーションをコピーできます。 詳細については、「Registration-Free COM 相互運用」を参照してください。

マネージド コードとデータ

.NET用に開発されたコードはマネージド コードと呼ばれ、CLR によって使用されるメタデータが含まれています。 .NET アプリケーションで使用されるデータは、ランタイムがメモリの割り当てと再利用、型チェックの実行などのデータ関連タスクを管理するため、マネージド データと呼ばれます。 既定では、Visual Basicはマネージド コードとデータを使用しますが、相互運用機能アセンブリ (このページで後述) を使用して COM オブジェクトのアンマネージ コードとデータにアクセスできます。

アセンブリ

アセンブリは、.NET アプリケーションの主要な構成要素です。 これは、1 つ以上のファイルを含む 1 つの実装ユニットとしてビルド、バージョン管理、およびデプロイされる機能のコレクションです。 各アセンブリには、アセンブリ マニフェストが含まれています。

タイプ ライブラリとアセンブリ マニフェスト

タイプ ライブラリは、メンバー名やデータ型など、COM オブジェクトの特性を記述します。 アセンブリ マニフェストは、.NET アプリケーションに対して同じ関数を実行します。 これには、次に関する情報が含まれます。

  • アセンブリ ID、バージョン、カルチャ、デジタル署名。
  • アセンブリの実装を構成するファイル。
  • アセンブリを構成する型とリソース。 これには、そこからエクスポートされたものが含まれます。
  • 他のアセンブリに対するコンパイル時の依存関係。
  • アセンブリを正しく実行するために必要なアクセス許可。

アセンブリとアセンブリ マニフェストの詳細については、「 .NET のアセンブリ」を参照してください。

タイプ ライブラリのインポートとエクスポート

Visual Studioには、タイプ ライブラリから.NET アプリケーションに情報をインポートできるユーティリティ Tlbimp が含まれています。 Tlbexp ユーティリティを使用して、アセンブリからタイプ ライブラリを生成できます。

Tlbimp と Tlbexp の詳細については、「 Tlbimp.exe (タイプ ライブラリ インポーター) 」および 「Tlbexp.exe (タイプ ライブラリ エクスポーター)」を参照してください。

相互運用機能アセンブリ

相互運用機能アセンブリは、マネージド コードとアンマネージド コードの間をブリッジする.NETアセンブリであり、COM オブジェクト メンバーを同等の.NETマネージド メンバーにマッピングします。 Visual Basic .NET によって作成された相互運用機能アセンブリは、相互運用性マーシャリングなど、COM オブジェクトの操作に関する多くの詳細を処理します。

相互運用マーシャリング

すべての.NETアプリケーションは、使用されるプログラミング言語に関係なく、オブジェクトの相互運用性を可能にする一連の共通型を共有します。 COM オブジェクトのパラメーターと戻り値では、マネージド コードで使用されているものとは異なるデータ型が使用される場合があります。 相互運用性マーシャリング は、パラメーターをパッケージ化し、COM オブジェクトとの間で移動する同等のデータ型に値を返すプロセスです。 詳細については、「相互運用マーシャリング」を参照してください。

こちらも参照ください