スタティックライブラリの作り方 for VC++
ライブラリとは、汎用性の高い複数のプログラムを、再利用可能な形でひとまとまりにしたもの
つまり、様々なプログラムで利用可能だなと思われるコードを
再利用しやすいように部品として生成したものがライブラリと言えます。
中でもスタティックライブラリ(静的リンクライブラリ=static link library)は
コンパイルするたびにリンクする方式のライブラリです。
今回は例としてfps管理サンプルをライブラリ化してみましょう。
プロジェクトの設定
プロジェクト−fpserのプロパティから変えられる。
設定する項目(Debug)
・構成プロパティ−全般−構成の種類 | exe→lib
・構成プロパティ−C/C++−コード生成−ランタイムライブラリ | /MDd→/MTd
・構成プロパティ−ライブラリアン−全般−出力ファイル | 適当
使えるように工夫する
新しくFpserLib.hをプロジェクトに追加します。
#ifndef _FPSER_LIB_ #define _FPSER_LIB_ #include "fpser.h" #ifdef _DEBUG #pragma comment(lib,"fpser_d.lib") #else #pragma comment(lib,"fpser_r.lib") #endif // _DEBUG #endif // _FPSER_LIB_
#pragmaにはライブラリ名を入力してください。
_DEBUGはデバッグモードで実行している場合に定義されるものです。
またツール−オプションからVC++のオプションを開き
プロジェクトおよびソリューション−VC++のディレクトリから
ライブラリファイルの置いてあるディレクトリを追加します。
右上がライブラリになっていることを確認してください。
以下のようにライブラリ専用のディレクトリを作っておくと便利でしょう。
スタティックライブラリの使い方
先ほど作ったヘッダをロードするだけで使えるようになります。
#include "fpser/FpserLib.h"
エラーがでる場合はパスが間違っている場合がありVC++のディレクトリ情報を
確認してからもう一度トライしてください。(ヘッダとライブラリに注目ね)
ツール−オプションからVC++のオプション プロジェクトおよびソリューション−VC++のディレクトリ
私の構成パターン
E:\Development\lib\mylib → ライブラリのプロジェクト置き場
E:\Development\lib\mylib\lib → ライブラリファイル置き場(lib)
FpserLib.hはE:\Development\lib\mylib\fpser\FpserLib.hにあります。
E:\Development\lib\mylibをヘッダファイル置き場として上記の方法で登録すれば
#include "fpser/FpserLib.h"で呼び出すことが可能です。
(作るときにソリューションにチェックを入れちゃうとやや大変(汗)
もちろんライブラリはE:\Development\lib\mylib\libとしてVC++に登録してあります。
最後に
このような小さなクラスライブラリだと威力は微小なものですが
ライブラリが大きくなっていくと、直接ファイルを追加するパターンと比べて
随分と楽になってくることが理解できるでしょう。
それでは、快適な再利用ライフをお楽しみください。