Hatena::ブログ(Diary)

ゲーム作ろうよ このページをアンテナに追加 RSSフィード Twitter

2009-03-06

スタティックライブラリの作り方 for VC++

ライブラリとは、汎用性の高い複数のプログラムを、再利用可能な形でひとまとまりにしたもの


つまり、様々なプログラムで利用可能だなと思われるコードを

再利用しやすいように部品として生成したものがライブラリと言えます。


中でもスタティックライブラリ(静的リンクライブラリ=static link library)は

コンパイルするたびにリンクする方式のライブラリです。



今回は例としてfps管理サンプルライブラリ化してみましょう。


プロジェクトの作成


1.いつも通りのプロジェクトの新規作成。
2.空のプロジェクト(名前はfpser)

20090306151031


3.ヘッダー、ソース類を作る。(mainは不要)

20090306151441


プロジェクトの設定


プロジェクト−fpserのプロパティから変えられる。

設定する項目(Debug)

・構成プロパティ−全般−構成の種類 | exe→lib

・構成プロパティC/C++−コード生成−ランタイムライブラリ | /MDd→/MTd

・構成プロパティライブラリアン−全般−出力ファイル | 適当


設定する項目(Release)

・構成プロパティ−全般−構成の種類 | exe→lib

・構成プロパティC/C++−コード生成−ランタイムライブラリ | /MD→/MT

・構成プロパティライブラリアン−全般−出力ファイル | 適当


出力ファイルは_rや_dを拡張子の前につけておいて

同じディレクトリに置くと便利になります。


使えるように工夫する


新しく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++ディレクトリから

ライブラリファイルの置いてあるディレクトリを追加します。

20090306161705

右上がライブラリになっていることを確認してください。


以下のようにライブラリ専用のディレクトリを作っておくと便利でしょう。

20090306162113


スタティックライブラリの使い方


先ほど作ったヘッダをロードするだけで使えるようになります。

#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++に登録してあります。


最後に


このような小さなクラスライブラリだと威力は微小なものですが

ライブラリが大きくなっていくと、直接ファイルを追加するパターンと比べて

随分と楽になってくることが理解できるでしょう。


それでは、快適な再利用ライフをお楽しみください。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証