前々回は、UNIX系OSにおけるスタティックライブラリの作成を行った・・・。
今回は、Windowsにおけるスタティックライブラリの作成を行い、それを使ってみる・・・。
まず、
Win32プロジェクトでStaticLibraryプロジェクトを作る・・・。
Windowsアプリケーション、空のプロジェクトで・・・。
出来たプロジェクトにStaticLibrary_1.hを追加し、
と記述・・・。
StaticLibrary_1.cppも追加し、
を記述・・・。
StaticLibraryFunc_1という関数を呼ぶと"StaticLibraryFunc_1!"が出力される・・・。
続いて、StaticLibrary_2.hを追加し、
を記述・・・。
StaticLibrary_2.cppを追加し、
を記述・・・。
StaticLibraryFunc_2という関数なら"StaticLibraryFunc_2!"が出力される・・・。
さて、これでソースは追加し終わったが、
プロパティの[全般]で[構成の種類]を"アプリケーション(.exe)"から、
"スタティックライブラリ(.lib)"に変更する・・・。
そうすると、出力するライブラリファイルの拡張子が".lib"になる・・・。(UNIX系OSだと".a"が一般的だが、Windowsは".lib")
これでビルドすると、
Debug構成ならdebugフォルダ(Release構成ならreleaseフォルダ)の下に、"StaticLibrary.lib"ができる・・・。
さて、これを呼び出すMainプロジェクトを追加する・・・。
ソリューションを右クリックで[追加]-[新しいプロジェクト]
コンソールアプリケーションの"Main"プロジェクトを追加・・・。
これも空のプロジェクトで・・・。
Main.cppを追加して、
を記述・・・。
StaticLibraryFunc_1とStaticLibraryFunc_2を順に呼び出すだけ・・・。
これでMainプロジェクトもソースコードの追加は終わり・・・。
でMainプロジェクトの設定方法だが・・・。
[プロジェクト依存関係]を選択し、
Mainになってる状態でStaticLibraryにチェックを入れる・・・。
これでMainプロジェクトはStaticLibraryに依存してる状態なので、
StaticLibraryからビルドを始める・・・。
そして、
[C/C++]の[追加のインクルードディレクトリ]に"../StaticLibrary"をセット・・・。
StaticLibraryプロジェクトのヘッダファイルは、Mainプロジェクトからみるとそこにあるので・・・。
そして、
Mainプロジェクトをスタートアッププロジェクトに設定する・・・。
こうすると、Mainプロジェクトのほうが太字になる・・・。
こうしないとMainプロジェクトから実行が始まらないので・・・。
これでビルドの準備が整った・・・。
ちなみに、StaticLibrary.libがdebugフォルダなどに既にある場合は、
[プロジェクト依存関係]をチェックしなくても、
[リンカ]-[全般]で[追加のライブラリディレクトリ]のパス(この場合StaticLibrary.libがdebugフォルダにあるので)を指定して、
[リンカ]-[入力]で[追加の依存ファイル]にStaticLibrary.libを指定すればいい・・・。
これでビルドして、実行すると、
StaticLibraryFunc_1! StaticLibraryFunc_2! 続行するには何かキーを押してください . . .
StaticLibrary.libの関数を呼ぶことができた・・・。
Sample/Main.cpp at master · bg1bgst333/Sample · GitHub
Sample/StaticLibrary_1.h at master · bg1bgst333/Sample · GitHub
Sample/StaticLibrary_1.cpp at master · bg1bgst333/Sample · GitHub
Sample/StaticLibrary_2.h at master · bg1bgst333/Sample · GitHub
Sample/StaticLibrary_2.cpp at master · bg1bgst333/Sample · GitHub