マネージド Visual C++ プロジェクトへの参照を追加する

この記事では、マネージド Visual C++ プロジェクトへの参照を追加する方法について説明します。

元の製品バージョン: Visual C++
元の KB 番号: 310674

概要

この記事では、Visual C++ プロジェクト内の別のアセンブリへの参照を追加するプロセスについて説明します。 Visual C# などの他の言語では、[参照の追加] ダイアログ ボックスを使用して 参照を追加 できます。 このダイアログ ボックスは、マネージド C++ アプリケーションでは使用できません。 マネージド C++ アプリケーションでの参照の使用を容易にするヒントがいくつかあります。

Microsoft .NET リファレンス

.NET 参照は、共有アセンブリを指します。 たとえば、アセンブリ System.Windows.Forms.dll は、Windows フォーム クラスにアクセスするための標準アセンブリです。 マネージド C++ アプリケーションでこのアセンブリを使用するには、次に示すようにプリプロセッサ ディレクティブで #using 参照するだけで済みます。

#using <System.Windows.Forms.dll>

COM 参照

マネージド C++ アプリケーションでコンポーネント オブジェクト モデル (COM) オブジェクトを使用するには、設計上の決定が必要です。 1 つのオプションは、マネージド クラス内でアンマネージ COM コードを使用することです。 たとえば、従来 #import のソリューションを使用することを決定できます。 これは、COM 相互運用機能の使用に問題がある場合に適したオプションです。

2 つ目のオプションは、COM オブジェクトをラップする相互運用機能アセンブリを使用することです。 これは、C# や Visual Basic .NET などの他の言語で使用できる唯一のメソッドです。 COM オブジェクトの相互運用機能アセンブリを作成するには、TLBIMP.exe ツールを使用します。 たとえば、次の手順を使用して、マネージド アプリケーションからインターネット エクスプローラーを自動化します。

  1. コマンド プロンプトを開きます。

  2. Windows システム フォルダーに移動します。

  3. 次のコマンドを入力します。

    tlbimp shdocvw.dll /out:Interop.shdocvw.dll
    
  4. Interop.shdocvw.dll をプロジェクト フォルダーに移動します。

これにより、 内の COM オブジェクトの相互運用機能アセンブリ Shdocvw.dll作成されます 。 結果のファイル (Interop.shdocvw.dll) は、 ディレクティブと共に #using 使用できます。 その後、マネージド コンポーネントとして扱うことができます。 このダイナミック リンク ライブラリ (DLL) を出力フォルダーに自動的にコピーする手順については、この記事の 「ビルド後イベントの使用 」セクションを参照してください。

注:

TLBIMP.exe を認識するには、Visual C++ の環境変数を設定する必要があります。 設定されていない場合は、まず Visual Studio .NET または ./VC/BIN/VCVARS32.bat Visual Studio と Visual C++ Express Edition で実行./VC7/BIN/VCVARS32.batする必要があります。

プロジェクト参照

プロジェクト参照は、他のプロジェクトによって作成されたアセンブリへの参照です。 ここでも、 ディレクティブは #using 、これらのアセンブリを参照するために使用されます。 ただし、これらのアセンブリは共有されないため、コンパイラがそれらを見つけられるように対策を講じる必要があります。 これを行う方法は 2 つあります。

  • アセンブリをプロジェクト フォルダーにコピーします。
  • プロジェクト設定を変更してアセンブリを探します。
  1. プロジェクトの [プロパティ ページ] ダイアログ ボックスを開きます。

  2. C/C++ フォルダーをクリックします。

    注:

    Visual C++ で、[ 構成プロパティ] を展開し、[ C/C++] を展開します。

  3. [ 全般] プロパティ ページをクリックします。

  4. [ #using 参照の解決 ] プロパティを変更して、ターゲット アセンブリを含むフォルダーをポイントします。

ビルド後イベントの使用

プライベート アセンブリは、それらを使用している実行可能ファイルと同じフォルダーに存在する必要があります。 Visual C#、Visual Basic .NET、または Visual Basic で参照を追加すると、出力フォルダーに自動的にコピーされます。 マネージド C++ アプリケーションでは、イベントを使用 post-build してこの手順を自動化できます。 たとえば、TestApp という名前のマネージド C++ アプリケーションのプロジェクト フォルダーに MYLIB.dll という名前のアセンブリがあるシナリオを考えてみましょう。 次の手順では、この DLL を post-buildTestApp プロジェクトの出力フォルダーにコピーするイベントを設定します。

  1. [マネージド C++ プロジェクトの プロパティ ページ ] ダイアログ ボックスを開きます。

  2. [ ビルド イベント ] フォルダーをクリックします。

    注:

    Visual C++ で、[ 構成プロパティ] を展開し、[ ビルド イベント] を展開します。

  3. [ ビルド後イベント] プロパティ ページを クリックします。

  4. コマンド ライン プロパティを次のコマンドに変更します。

    copy $(<ProjectDir>)mylib.dll $(<TargetDir>)  
    

Visual C++ .NET または Visual C++ の使用

Visual C++ .NET または Visual C++ を使用すると、[参照の追加] ダイアログ ボックスを使用して 参照を追加 できます。 プロジェクト参照を追加するには、次の手順に従います。

  1. ソリューション エクスプローラーで、プロジェクトを選択します。

  2. [ プロジェクト ] メニューの [ 参照の追加] をクリックします。

    注:

    Visual C++ で、[プロジェクト] メニューの [参照] をクリックし、[新しい参照の追加] をクリックします。

  3. [ 参照の追加 ] ダイアログ ボックスで、参照を追加するカテゴリに対応するタブをクリックします。

    注:

    Visual C++ で、[参照の追加] ダイアログ ボックスの [参照] タブをクリックします。

  4. [ 参照] をクリックし、ローカル ドライブに必要なコンポーネントを見つけて、[ OK] をクリックします。 コンポーネントが [選択されたコンポーネント] フィールドに追加されます。

    注:

    Visual C++ で、ローカル ドライブに必要なコンポーネントを見つけます。

  5. 選択した参照を現在のタブに追加するには、[ 追加] をクリックします。

    注:

    Visual C++で、[OK] をクリックしてダイアログ ボックスを閉じ、プロジェクトの [プロパティ ページ] ダイアログ ボックスの [参照] リスト ボックスにコンポーネントを追加します。