ライブラリとコンポーネントの使用
多くの場合、C++ プロジェクトでは、関数を呼び出したり、スタティック ライブラリ (LIB ファイル)、DLL、Windows ランタイム コンポーネント、COM コンポーネント、.NET アセンブリなどのバイナリ ファイル内のデータにアクセスしたりする必要があります。 このような場合は、ビルド時にそのバイナリを見つけることができるようにプロジェクトを構成する必要があります。 具体的な手順は、プロジェクトの種類、バイナリの種類、およびバイナリがプロジェクトと同じソリューション内にビルドされているかどうかによって異なります。
vcpkg を使用してダウンロードされたライブラリを使用する
vcpkg パッケージ マネージャーを使用してダウンロードしたライブラリを使用する場合は、以下の手順を無視できます。 詳細については、以下を参照してください:
- CMake プロジェクトでの vcpkg
- Visual Studio の CMake でパッケージをインストールして使用する
- MSBuild プロジェクトの vcpkg
- チュートリアル: Visual Studio で MSBuild でパッケージをインストールして使用する
スタティック ライブラリの使用
スタティック ライブラリ プロジェクトが同じソリューション内にビルドされている場合:
- 引用符を使用して、スタティック ライブラリ用のヘッダー ファイルを含めます。 一般的なソリューションでは、パスは
../<library project name>
で始まります。 IntelliSense を使用して見つけることができます。 - スタティック ライブラリ プロジェクトに参照を追加します。 ソリューション エクスプローラーで、アプリケーション プロジェクト ノードの下の [参照] を右クリックし、[参照の追加] を選択します。
スタティック ライブラリがソリューションの一部でない場合:
- ソリューション エクスプローラーで、アプリケーション プロジェクト ノードを右クリックし、[プロパティ] を選択します。
- [VC++ ディレクトリ] プロパティ ページで、LIB ファイルを含むディレクトリへのパスを [ライブラリ パス] に追加します。 次に、ライブラリ ヘッダー ファイルのパスを [インクルード ディレクトリ] に追加します。
- [リンカー] > [入力] プロパティ ページで、[追加の依存関係] に LIB ファイルの名前を追加します。
ダイナミック リンク ライブラリ
DLL がアプリケーションと同じソリューションの一部としてビルドされている場合は、スタティック ライブラリの場合と同じ手順を行います。
DLL がアプリケーション ソリューションの一部でない場合は、DLL ファイル、エクスポートされる関数とクラスのプロトタイプを含むヘッダー、および必要なリンク情報を提供する LIB ファイルが必要です。
- DLL をプロジェクトの出力フォルダーにコピーするか、Windows の DLL 用の標準検索パスに含まれる別のフォルダーにコピーします。 詳細については、「ダイナミック リンク ライブラリの検索順序」を参照してください。
- スタティック ライブラリの手順 1 から 3 に従って、ヘッダーと LIB ファイルのパスを指定します。
COM オブジェクト
ネイティブ C++ アプリケーションで COM オブジェクトを使用する必要があり、そのオブジェクトが "登録済み" の場合、実行する必要があるのは、CoCreateInstance を呼び出してオブジェクトの CLSID を渡すことだけです。 システムによって、Windows レジストリで検出されて読み込まれます。 C++/CLI プロジェクトには、同じ方法で COM オブジェクトを使用できます。 または、[参照の追加] > [COM] リストからこれに対する参照を追加して使用し、そのランタイム呼び出し可能ラッパーを介して使用することができます。
.NET アセンブリと Windows ランタイム コンポーネント
UWP または C++/CLI プロジェクトでは、アセンブリまたはコンポーネントへの "参照" を追加することで、.NET アセンブリまたは Windows ランタイム コンポーネントを使用します。 UWP または C++/CLI プロジェクトの [参照] ノードの下に、一般的に使用されるコンポーネントへの参照が表示されます。 ソリューション エクスプローラーで [参照] ノードを右クリックして参照マネージャーを表示し、システム上で使用できるコンポーネントを参照します。 [参照] ボタンを選択し、カスタム コンポーネントを含む任意のフォルダーに移動します。 .NET アセンブリと Windows ランタイム コンポーネントには組み込みの型情報が含まれているため、右クリックして [オブジェクト ブラウザーで表示] を選択することで、それらのメソッドとクラスを表示できます。
参照のプロパティ
参照には種類に従ってそれぞれプロパティがあります。 プロパティを表示するには、ソリューション エクスプローラーで参照を選んで Alt + Enterキーを押すか、右クリックして [プロパティ]を選びます。 読み取り専用のプロパティと、変更できるプロパティがあります。 ただし、通常はこれらのプロパティを手動で変更する必要はありません。
ActiveX 参照のプロパティ
ActiveX 参照のプロパティは、COM コンポーネントへの参照に対してのみ使用できます。 これらのプロパティは、[参照] ペインで COM コンポーネントを選択した場合にのみ表示されます。 プロパティは変更できません。
コントロールの完全なパス
参照先のコントロールのディレクトリ パスが表示されます。
コントロールの GUID
ActiveX コントロールの GUID が表示されます。
コントロールのバージョン
参照先の ActiveX コントロールのバージョンが表示されます。
タイプ ライブラリ名
参照されているタイプ ライブラリ名が表示されます。
ラッパー ツール
参照先の COM ライブラリまたは ActiveX コントロールからの相互運用機能アセンブリをビルドするために使用するツールが表示されます。
アセンブリ参照のプロパティ (C++/CLI)
アセンブリ参照のプロパティは、C++/CLI プロジェクトの .NET Framework アセンブリへの参照でのみ使用できます。 これらのプロパティは、[参照] ペインで .NET Framework アセンブリを選択した場合にのみ表示されます。 プロパティは変更できません。
相対パス
プロジェクト ディレクトリから参照するアセンブリへの相対パスが表示されます。
ビルド プロパティ
次のプロパティは、さまざまな種類の参照で使用できます。 参照付きでビルドする方法をこれらのプロパティにより指定できます。
ローカルにコピー
ビルド時に、参照するアセンブリをターゲットの場所に自動的にコピーするかどうかを指定します。
ローカル サテライト アセンブリをコピー (C++/CLI)
ビルド時に、参照するアセンブリのサテライト アセンブリをターゲットの場所に自動的にコピーするかどうかを指定します。 [ローカルにコピー] が
true
の場合のみ使用します。参照アセンブリの出力
このアセンブリがビルド処理で使用されることを指定します。
true
の場合、ビルド時にコンパイラのコマンド ラインでアセンブリが使用されます。
プロジェクト間参照プロパティ
次のプロパティを使用して、[参照] ペインで選んだプロジェクトから、同じソリューション内の別のプロジェクトへの "プロジェクト間参照"を定義します。 詳細については、「プロジェクト内の参照の管理」を参照してください。
ライブラリ依存関係のリンク
このプロパティが True の場合、プロジェクト システムにより、独立プロジェクトから生成される LIB ファイルが依存プロジェクトにリンクされます。 通常は True を指定します。
プロジェクト識別子
独立したプロジェクトを一意に識別します。 プロパティの値は、変更できない内部システムの GUID です。
ライブラリ依存関係の入力の使用
このプロパティが False の場合、プロジェクト システムにより、独立プロジェクトから生成されるライブラリの OBJ ファイルは依存プロジェクトにリンクされません。 そのため、この値により、インクリメンタル リンクは無効になります。 依存プロジェクトが多い場合、アプリケーションのビルドには時間がかかるため、通常は False を指定します。
読み取り専用の参照プロパティ (COM および .NET)
次のプロパティは COM および .NET アセンブリ参照に存在し、変更できません。
アセンブリ名
参照するアセンブリのアセンブリ名が表示されます。
カルチャ
選択された参照のカルチャが表示されます。
説明
選択された参照の説明が表示されます。
完全なパス
参照されたアセンブリのディレクトリ パスが表示されます。
ID
.NET Framework アセンブリの場合、完全なパスが表示されます。 COM コンポーネントでは、GUID が表示されます。
ラベル
参照のラベルが表示されます。
名前
参照名が表示されます。
公開キー トークン
参照されたアセンブリを識別するために使用される公開キー トークンが表示されます。
厳密な名前
参照されるアセンブリが厳密な名前を持つ場合は
true
です。 厳密な名前付きのアセンブリには、一意のバージョンがあります。Version
参照アセンブリのバージョンが表示されます。
関連項目
C++ プロジェクトのプロパティ ページのリファレンス
Visual Studio で C++ コンパイラとビルド プロパティを設定する