LIB
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
Libファイル編です
Libファイルはビルド時にリンクされるプログラムの部品です
前もって完成した複数のソースファイルをコンパイルしてLibフ...
そのLibファイルをリンクさせるだけで済むので
次回以降は、そのソースファイルのコンパイルの作業を省くこ...
プログラムが大きくなるほど、ソースファイル(.cpp)が増え
コンパイルに時間がかかるのでこのようにあらかじめコンパイ...
その完成した部品(モジュールといいます)をリンクさせるだ...
つまりLibにすることで
・複数のソースファイルをコンパイルして1つのLibファイルへ...
・コンパイル時間を短縮することができる
のメリットがあります
今回はLibファイルを自作して、使ってみましょう
まず、Visual StudioでWin32コンソールアプリケーションもし...
&ref(lib2.GIF);
次へを選びます
&ref(lib3.GIF);
「スタティックライブラリ」を選択し、
「プリコンパイラ済みヘッダー」のチェックをはずし
完了を押します
&ref(lib1.GIF);
プロジェクトが生成され
ソリューションエクスプローラが次のようになります
&ref(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)を選びます
&ref(lib6.GIF);
Releaseモードならマルチスレッド(MT)を選びます
&ref(lib7.GIF);
コード生成の設定後ビルドをします
&ref(lib5.GIF);
ビルド後、プロジェクトのDebugもしくはReleaseフォルダにLib...
&ref(lib8.GIF);
&ref(lib9.GIF);
続いて、今作ったLibファイルを早速使ってみたいと思います
TestLibという空のプロジェクトを作ります
機能編の空のプロジェクトの作り方と同じです
&ref(lib10.GIF);
TestLibプロジェクトのフォルダに先ほど作った
MyLib.hとMyLib.libファイルをコピーします
TestLibプロジェクトがDebugモードならMyLib.libはDebugモー...
TestLibプロジェクトがReleaseモードならMyLib.libはRelease...
使います
MyLib.cppはコンパイル済みのものがMyLib.libファイルなので...
&ref(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);
}
&ref(lib12.GIF);
TestLibプロジェクトのプロパティからコード生成の項目を選び...
Debugモードならマルチスレッドデバック(MTd)を選びます
Releaseモードならマルチスレッド(MT)を選びます
コード生成はMyLib側と統一しておいてください
ビルドして成功すれば、次のようになります
&ref(lib13.GIF);
ちゃんと呼び出せていますね
次のようなリンカの警告(もしくはエラーが出た場合)、
MyLib側とTestLib側のコード生成が同じであるか確認してくだ...
&ref(lib14.GIF);
---------------------------------------------------------...
今回のソースファイルは下からダウンロードできます
&ref(Lib.zip);
#vote((^ω^)やったお[0],何これwww意味不すぎwww[0...
終了行:
Libファイル編です
Libファイルはビルド時にリンクされるプログラムの部品です
前もって完成した複数のソースファイルをコンパイルしてLibフ...
そのLibファイルをリンクさせるだけで済むので
次回以降は、そのソースファイルのコンパイルの作業を省くこ...
プログラムが大きくなるほど、ソースファイル(.cpp)が増え
コンパイルに時間がかかるのでこのようにあらかじめコンパイ...
その完成した部品(モジュールといいます)をリンクさせるだ...
つまりLibにすることで
・複数のソースファイルをコンパイルして1つのLibファイルへ...
・コンパイル時間を短縮することができる
のメリットがあります
今回はLibファイルを自作して、使ってみましょう
まず、Visual StudioでWin32コンソールアプリケーションもし...
&ref(lib2.GIF);
次へを選びます
&ref(lib3.GIF);
「スタティックライブラリ」を選択し、
「プリコンパイラ済みヘッダー」のチェックをはずし
完了を押します
&ref(lib1.GIF);
プロジェクトが生成され
ソリューションエクスプローラが次のようになります
&ref(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)を選びます
&ref(lib6.GIF);
Releaseモードならマルチスレッド(MT)を選びます
&ref(lib7.GIF);
コード生成の設定後ビルドをします
&ref(lib5.GIF);
ビルド後、プロジェクトのDebugもしくはReleaseフォルダにLib...
&ref(lib8.GIF);
&ref(lib9.GIF);
続いて、今作ったLibファイルを早速使ってみたいと思います
TestLibという空のプロジェクトを作ります
機能編の空のプロジェクトの作り方と同じです
&ref(lib10.GIF);
TestLibプロジェクトのフォルダに先ほど作った
MyLib.hとMyLib.libファイルをコピーします
TestLibプロジェクトがDebugモードならMyLib.libはDebugモー...
TestLibプロジェクトがReleaseモードならMyLib.libはRelease...
使います
MyLib.cppはコンパイル済みのものがMyLib.libファイルなので...
&ref(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);
}
&ref(lib12.GIF);
TestLibプロジェクトのプロパティからコード生成の項目を選び...
Debugモードならマルチスレッドデバック(MTd)を選びます
Releaseモードならマルチスレッド(MT)を選びます
コード生成はMyLib側と統一しておいてください
ビルドして成功すれば、次のようになります
&ref(lib13.GIF);
ちゃんと呼び出せていますね
次のようなリンカの警告(もしくはエラーが出た場合)、
MyLib側とTestLib側のコード生成が同じであるか確認してくだ...
&ref(lib14.GIF);
---------------------------------------------------------...
今回のソースファイルは下からダウンロードできます
&ref(Lib.zip);
#vote((^ω^)やったお[0],何これwww意味不すぎwww[0...
ページ名: