DLLの使い方 | Middle Cource とこの風民さん

DLLの使い方

前回が「作り方」で今回は「使い方」。

今思うと逆の方が良かったのでは?と思うが、まぁいいやw

実際、俺の場合は使い方を意識する前に作り方を覚えたし。


DLLの使い方、とはいっても実際VCとかを使っている人は無意識に使っています。(WindowsAPIなどはまさにそれ)

で、その無意識を「意識して」使うには以下の設定を行う必要があります。


必要なもの:

・Libファイル&DLLファイル(同じディレクトリに入れておきましょう)

・ヘッダーファイル

①Libファイルを参照する

 DLLはすでにバイナリ化したデータ。無論、そのデータだけではプログラムで使用は出来ない。

 DLLとプログラムの橋渡し的存在が、このLibファイル。

「オプション」→「プロジェクトおよびソリューション」→「VC++ ディレクトリ」の設定でコンボボックスより「ライブラリファイル」を選択し、参照したいLibファイルのあるディレクトリを追加する。

(※どうもここで設定したパスは環境変数[LIB]にも反映される様子)


一応、この方法でLibファイルの設定はOKですが、実は参照する優先度というものがあります。

1:実行ファイルと同じパス(カレントディレクトリ)

2:システムフォルダ

3:環境変数

となり、上記の方法だと最も優先度が低くなります。

風民は自作DLLは専用のフォルダに書き出して、そこを参照させています。

「これで何処でプロジェクトを作っても自作DLLへアクセスだ!」

と喜んだのもつかの間、既存のDLL名と自作DLL名が被り、リンクエラーを起こしました。

ちなみに上記の原因が分かるまで2日かかりましたorz


②プロジェクトにもLibファイルを参照させる

 さて、実行!とやってみてもまだ駄目です。もう一手間いります。

 プロジェクトに使用するLibファイルを教えなくてはなりません。

 方法は2つ。

1:プロジェクトのプロパティから「構成プロパティ」→「リンカ」→「コマンドライン」のページの「追加のオプション」に使用するLibファイルを記述する

2:ソースの何処か(#include 定義の付近?)に[#pragma comment(lib, "参照LIBファイル")]と記述


以上で設定終了。

某猫のページの管理人様もおっしゃっていました。

「DLLを作れるとプログラムがうまくなった気がします」

・・・はい、少し優越感に浸れました♪