方法: COM ラッパーを作成する
Visual Studio の機能または .NET Framework のツールである Tlbimp.exe と Regasm.exe を使用して、COM (コンポーネント オブジェクト モデル) ラッパーを作成することができます。 どちらの方法でも以下の 2 種類の COM ラッパーが作成されます。
タイプ ライブラリからのランタイム呼び出し可能ラッパー。マネージド コードで COM オブジェクトを実行します。
必要なレジストリ設定を含む COM 呼び出し可能ラッパー。ネイティブ アプリケーションでマネージド オブジェクトを実行します。
Visual Studio では、プロジェクトに参照として COM ラッパーを追加できます。
マネージド アプリケーションに COM オブジェクトをラップする
Visual Studio を使用してランタイム呼び出し可能ラッパーを作成するには
マネージド アプリケーションのプロジェクトを開きます。
[プロジェクト] メニューの [すべてのファイルを表示] をクリックします。
[プロジェクト] メニューの [参照の追加] をクリックします。
[参照の追加] ダイアログ ボックスで、 [COM] タブをクリックし、使用するコンポーネントを選択して [OK] をクリックします。
ソリューション エクスプローラーで、COM コンポーネントがプロジェクトの [参照設定] フォルダーに追加されていることを確認します。
これで、COM オブジェクトにアクセスするためのコードを作成できます。 Visual Basic の場合の Imports
ステートメントや C# の場合の Using
ディレクティブなど、オブジェクトの宣言で始めることができます。
Note
Microsoft Office コンポーネントをプログラミングする場合は、最初に Microsoft ダウンロード センターから Microsoft Office Primary Interop Assemblies Redistributable をインストールします。
.NET Framework ツールを使用してランタイム呼び出し可能ラッパーを作成するには
- Tlbimp.exe (タイプ ライブラリ インポーター) ツールを実行します。
このツールは、元のタイプ ライブラリで定義された型のランタイム メタデータを含むアセンブリを作成します。
ネイティブ アプリケーションにマネージド オブジェクトをラップする
Visual Studio を使用して COM 呼び出し可能ラッパーを作成するには
ネイティブ コードで実行するマネージド クラス用のクラス ライブラリ プロジェクトを作成します。 このクラスには、パラメーターなしのコンストラクターが含まれている必要があります。
AssemblyInfo ファイルで、アセンブリの 4 つの部分で構成される完全なバージョン番号があることを確認します。 この番号は、Windows レジストリでバージョンを管理するために必要となります。 バージョン番号の詳細については、「アセンブリのバージョン管理」を参照してください。
[プロジェクト] メニューの [プロパティ] をクリックします。
[コンパイル] タブをクリックします。
[COM の相互運用機能に登録] チェック ボックスをオンにします。
プロジェクトをビルドすると、アセンブリが COM 相互運用機能に対して自動的に登録されます。 Visual Studio でネイティブ アプリケーションをビルドする場合は、 [プロジェクト] メニューの [参照の追加] をクリックすることで、アセンブリを使用できます。
.NET Framework ツールを使用して COM 呼び出し可能ラッパーを作成するには
Regasm.exe (アセンブリ登録ツール) を実行します。
このツールはアセンブリ メタデータを読み取り、必要なエントリをレジストリに追加します。 その結果、COM クライアントで .NET Framework クラスを透過的に作成できるようになります。 アセンブリは、ネイティブ COM クラスの場合と同じように使用することができます。
任意のディレクトリにあるアセンブリで Regasm.exe を実行してから、Gacutil.exe (グローバル アセンブリ キャッシュ ツール) を実行して、そのアセンブリをグローバル アセンブリ キャッシュに移動することができます。 アセンブリを移動しても場所のレジストリ エントリが無効になることはありません。これは、アセンブリが他の場所で見つからない場合に常にグローバル アセンブリ キャッシュが調べられるからです。
関連項目
.NET
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示