Visual Studio で 動的ライブラリ(DLL)を利用する
前回は、作成するところまで行いました。
今回は、実際に使ってみたいと思います。
pickles-ochazuke.hatenablog.com
DLL を使うプロジェクトを作成
とくに変わったところはないです。いつも通り作っちゃってください。自分は、空のプロジェクトで作成しました。プロジェクト名は、Project3
です。ついでに main 関数を書くためにソースファイル(main.cpp)を作っておきましょう。
DLL を使うための準備
さて、まずは DLL を使えるようにしないといけません。ざっくり手順を書きますと
- ソリューションに DLL のプロジェクトを追加(プロジェクトは、前回作成済み)
- 使う側に DLL の参照を追加する
- DLL のヘッダファイルがあるディレクトリを追加する
1. ソリューションに DLL のプロジェクトを追加
ソリューションエクスプローラ
に表示されているソリューションを右クリックして、追加
> 既存のプロジェクト
を選択します。
するとエクスプローラが開くので、追加したい DLL のプロジェクトを選びます。ここでは、前回作成したプロジェクト(DLLTest.vcxproj
)を選びました。これでソリューションエクスプローラ
に、先ほど選んだプロジェクトが表示されていると思います。これで追加完了です。
2. 使う側にDLL の参照を追加する
次に、今回作成したプロジェクト(Project3)に参照を追加します。画像で見ていただくと分かりやすいと思いますが、ソリューションエクスプローラ
に表示されている、Project3
の下に参照
があると思います。ここを右クリックして、参照の追加
を選びます。
で、前回作成したプロジェクト名が表示されていると思うので、それにチェックを入れます。
3. DLL のヘッダファイルがあるディレクトリを追加する
Project3
を右クリックして、一番下にあるプロパティ
を選択します。で、構成プロパティ
> C/C++
と選び、追加のインクルードディレクトリ
に追加したい DLL のヘッダファイルがあるディレクトリを選びます。前回作成した DLL の場合、DLLTest.h
があるディレクトリを選びます。これで準備完了です。
DLL を使う
実際に使ってみます。手順 1 ですでにソースファイル(main.cpp)を作ってあると思うので、そこに書いていきましょう。
以下のように書きました。
#include <iostream> #include "../DLLTest/DLLTest.h" int main() { DLLTest::HelloWorld hello; DLLTest::HelloWorld::hello(); hello.world(); std::cout << hello.huga << std::endl; return 0; }
DLLTest.h
のインクルード場所は、環境によって異なると思いますので、注意してください。ビルドをして通ったら、実行してみましょう。あ、実行の前に、メニュー
> プロジェクト
> "プロジェクト名"のプロパティ
を選び、構成プロパティ
> リンカー
> システム
を選びます。で、サブシステム
という欄があるので、コンソール
を選び、OK を押します。
実行すると同じであれば、以下のように表示されると思います。
おわり
以上が DLL の使い方になります。プロジェクトとヘッダファイルが必要になるので、どこか共通の場所を作っておくと良いかもしれません。どう管理するといいんだろう……。
以下を参考にしました。