Libファイル編です
Libファイルはビルド時にリンクされるプログラムの部品です

前もって完成した複数のソースファイルをコンパイルしてLibファイルにしておけば、
そのLibファイルをリンクさせるだけで済むので
次回以降は、そのソースファイルのコンパイルの作業を省くことができます
プログラムが大きくなるほど、ソースファイル(.cpp)が増え
コンパイルに時間がかかるのでこのようにあらかじめコンパイルしておくことで
その完成した部品(モジュールといいます)をリンクさせるだけで使えるようになります
つまりLibにすることで
・複数のソースファイルをコンパイルして1つのLibファイルへまとめることができる
・コンパイル時間を短縮することができる
のメリットがあります

今回はLibファイルを自作して、使ってみましょう
まず、Visual StudioでWin32コンソールアプリケーションもしくはWin32プロジェクトを選びます

lib2.GIF

次へを選びます

lib3.GIF

「スタティックライブラリ」を選択し、
「プリコンパイラ済みヘッダー」のチェックをはずし
完了を押します

lib1.GIF

プロジェクトが生成され
ソリューションエクスプローラが次のようになります

lib4.GIF

ReadMe.txtは自動生成されたものですが
プロジェクトには全く関係ないので削除してもかまいません

新規ファイルを作ります
ここでは、簡易的にテスト用の関数とクラスを作成します
ここでは適当にMyLib.cppとMyLib.hとしておきます
作り方は分割コンパイル編を参考にしてください

MyLib.hです

	// MyLib.h

	// 多重インクルードガード
	#ifndef _MYLIB_H_
	#define _MYLIB_H_

	#include <stdio.h>

	// テスト用関数
	void TestMyLib();

	// テスト用クラス
	class CTestMyLib
	{
	public:
		int a;
		// コンストラクタ
		CTestMyLib();
	};

	#endif // _MYLIB_H_

MyLib.cppです

	// MyLib.cpp

	#include "MyLib.h"

	// テスト用関数実装
	void TestMyLib()
	{
		printf("Hello MyLib\n");
	}

	/////////////////////////////////////
	// テスト用クラス実装

	// コンストラクタ
	CTestMyLib::CTestMyLib():a(10)
	{
	}

MyLibプロジェクトのプロパティからコード生成の項目を選びます
Debugモードならマルチスレッドデバック(MTd)を選びます

lib6.GIF

Releaseモードならマルチスレッド(MT)を選びます

lib7.GIF

コード生成の設定後ビルドをします

lib5.GIF

ビルド後、プロジェクトのDebugもしくはReleaseフォルダにLibファイルが生成されています
lib8.GIF
lib9.GIF

続いて、今作ったLibファイルを早速使ってみたいと思います
TestLibという空のプロジェクトを作ります
機能編の空のプロジェクトの作り方と同じです

lib10.GIF

TestLibプロジェクトのフォルダに先ほど作った
MyLib.hとMyLib.libファイルをコピーします
TestLibプロジェクトがDebugモードならMyLib.libはDebugモードで生成したものを
TestLibプロジェクトがReleaseモードならMyLib.libはReleaseモードで生成したものを
使います
MyLib.cppはコンパイル済みのものがMyLib.libファイルなので不要です

lib11.GIF

追加後、プロジェクトにヘッダーファイルを追加し
MyLibファイルの機能を使用してみます

main.cppを作成します

// main.cpp
#include "MyLib.h"

// Libファイルをリンク時にリンクさせる
#pragma comment(lib,"MyLib.lib")

int main(){
	CTestMyLib test;
	
	// Lib関数
	TestMyLib();
	// Libクラステスト
	printf("MyLibTest a = %d\n",test.a);
}

lib12.GIF

TestLibプロジェクトのプロパティからコード生成の項目を選びます
Debugモードならマルチスレッドデバック(MTd)を選びます
Releaseモードならマルチスレッド(MT)を選びます
コード生成はMyLib側と統一しておいてください

ビルドして成功すれば、次のようになります

lib13.GIF

ちゃんと呼び出せていますね

次のようなリンカの警告(もしくはエラーが出た場合)、
MyLib側とTestLib側のコード生成が同じであるか確認してください

lib14.GIF


今回のソースファイルは下からダウンロードできます
fileLib.zip

選択肢 投票
(^ω^)やったお 0  
何これwww意味不すぎwww 0  
。(`ω´#)。あぁん?最近、だらしねぇな 0  

添付ファイル: fileLib.zip 613件 [詳細] filelib13.GIF 667件 [詳細] filelib10.GIF 692件 [詳細] filelib14.GIF 725件 [詳細] filelib12.GIF 705件 [詳細] filelib11.GIF 705件 [詳細] filelib9.GIF 713件 [詳細] filelib8.GIF 748件 [詳細] filelib7.GIF 720件 [詳細] filelib6.GIF 705件 [詳細] filelib5.GIF 734件 [詳細] filelib4.GIF 705件 [詳細] filelib3.GIF 686件 [詳細] filelib2.GIF 689件 [詳細] filelib1.GIF 661件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2011-05-01 (日) 16:04:46