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を作れるとプログラムがうまくなった気がします」
・・・はい、少し優越感に浸れました♪