web-dev-qa-db-ja.com

DLL Visual C ++の参照

C++の経験はありますが、MSVCはありません。

私がやろうとしているのは、オープンソースプロジェクトの.dllをプロジェクトに組み込むことです。コードは利用可能であり、私はそれを構築しました。 .dllと.libがあり、C++プロジェクトに必要であると理解しています。

残念ながら、単純な「参照の追加」はありません。dllをincludeディレクトリにドロップし、それをソリューションに追加します。プロジェクトプロパティページ、C/C++の追加インクルードディレクトリオプションを編集し、追加のリンカー依存関係として.libを追加しました。ソリューションツリー内にdllとlibのincludeディレクトリを作成しました。

私の問題は、ドキュメントのヘッダーファイルをインクルードしようとすると、VS出力がエラーメッセージを出力することです。今、私はdll/libコンボを使用していること、そして.hファイルが私のソリューションに存在しないことに気付いたので、適切なインクルードをどのように追加しますか?私も働いているQTツールキットを使用していますが、オープンソースライブラリから他のヘッダー/ dllを追加する方法は私を避けます。

誰かが私を正しい方向に向けてください。

44
Mark Stahler

ライブラリを使用するには、いくつかのことを行う必要があります。

  1. 使用するライブラリの* .libと* .dllの両方があることを確認してください。 * .libがない場合は、#2をスキップします

  2. プロジェクトに* .libへの参照を配置します。ソリューションエクスプローラーでプロジェクト名を右クリックし、[構成プロパティ]-> [リンカー]-> [入力]を選択して、追加の依存関係プロパティにlibの名前を入力します。

  3. VSが追加したライブラリを見つけることができることを確認する必要があります。[ツール]メニューに移動し、[オプション...]を選択する必要があります。次に[プロジェクトとソリューション]で[VC++ディレクトリ]ここから、「Show Directories For:」ドロップダウンボックスで「Library Files」を選択して、新しいライブラリを含むディレクトリを設定できます。ディレクトリのリストにlibファイルへのパスを追加するだけです。 libがない場合はこれを省略できますが、ここで、ヘッダーファイルを含むディレクトリを「Include Files」の下にも設定する必要があります。 libを追加したのと同じ方法で行います。

これを行った後、ライブラリを使用できるようになります。 libファイルがない場合は、dllを自分でインポートして使用できます。アプリケーションの起動中に、LoadLibraryを呼び出して明示的にdllをロードできます(詳細については、 http://msdn.Microsoft.com/en-us/library/ms684175(VS.85).aspxを参照

乾杯!

編集

#include "foo.h"ではなく、必ず#include <Foo.h>を使用してください。前者は、インクルードパスを検索します。後者はローカルプロジェクトファイルを使用します。

78
Aaron Cook

追加のインクルードディレクトリは、プロジェクトディレクトリに関連しています。これは通常、プロジェクトファイル* .vcprojがあるディレクトリです。あなたの場合、インクルードディレクトリとライブラリディレクトリに「インクルード」だけを追加する必要があると思います。

プロジェクトのディレクトリを確認する場合は、$(ProjectDir)マクロの値を確認できます。それを行うには、「C/C++-> Additional Include Directories」に進み、「...」ボタンを押して、ポップアップダイアログで「Macros >>」を押します。

2

追加のインクルードディレクトリ(C/C++ | General)と追加のlib依存関係(リンカー|入力)の追加について言及しましたが、追加のライブラリディレクトリ(リンカー|全般)も追加しましたか?

サンプルのエラーメッセージを含めると、コンパイル中またはリンク中にエラーが発生したかどうかさえ明確にならないため、質問への回答に役立つ場合があります。

1
imaginaryboy