2011-10-21 14 views
18

Visual Studio 2010でDLLを追加するにはどうすればよいですか?
私はそこでオプションを見つけることができません。
ありがとうございます。Visual StudioでDLLをリンクする

答えて

31

Windowsの場合.dllファイルに直接接続しないでください。–の場合は、代わりに.libファイルを使用する必要があります。これを行うには、Project -> Properties -> Configuration Properties -> Linker -> Additional Dependenciesに行き、.libへのパスを次の行として追加します。

また.dllファイルは%PATH%環境変数によってまたはそのコピーがOutput Directoryであることを含まれているディレクトリ(デフォルトでは、これはあなたのプロジェクトのフォルダの下Debug\Releaseである)のいずれかであることを確認する必要があります。

あなたは.libファイルへのアクセス権を持っていない場合は、一つの代替は、このようなLoadLibraryGetProcAddressとしてWINAPI関数を使用して、実行時に手動で.dllをロードすることです。

+0

.hファイルについても言及しています。私たちはこのプロセスに必要ですか? .libファイルにはdllのすべての情報が含まれているので、これらは必要ないと思います。 – darkgaze

+0

@darkgaze .hファイルには、通常、プロトタイプ、宣言、定数、マクロなどがすべて含まれているため、それらはまだ必要と思われます。 –

19

DLLに直接追加またはリンクしないでください。DLLによって生成されたLIBにリンクします。

LIBは、コードにライブラリを含める(静的リンク)か、DLL(ダイナミックリンク)を参照するためのシンボルやその他の必要なデータを提供します。

LIBとリンクするには、プロジェクトのプロパティ - >リンカ - >入力 - >追加の依存関係リストに追加する必要があります。ここにあるすべてのLIBファイルがリンクに使用されます。また、プラグマを使用することもできます。

#pragma comment(lib, "dll.lib") 

静的リンクでは、コードは実行可能ファイルに含まれており、実行時依存関係はありません。動的リンクでは、一致する名前と記号を持つDLLがthe search pathではなく、のパスまたはシステムディレクトリのみ)で使用可能である必要があります。

+2

静的リンクについて:Visual Studioで特定のディレクトリからビルド時(またはリンク時)の出力? – Marcel

+2

@Marcel各プロジェクトは、ビルド前、ビルド後、およびその他のさまざまなステップを提供します(プロジェクト設定をチェックインします)。そこにファイルコピーをすることも、スクリプト全体を実行することもできます(私はgitリビジョンIDからヘッダを作成し、ビルド前にビルド番号をインクリメントして、postでテストインストールにファイルをコピーするようにスクリプトを設定しています)。 – ssube

関連する問題