How2Computing

Windwos Visual Studio 2010 で静的ライブラリ lib を作る

動的ライブラリdllを作る に比べたらむちゃくちゃ簡単です。

簡単なliblをC言語で作る

Visual Studio 2010から「新しいプロジェクト」「Win32コンソールアプリケーション」を選ぶ。名前は、mydllとしておく。

http://gyazo.com/53ae6ce82b868f6462e56bdca34d368e.png

次に開くアプリケーションウィザードで、アプリケーションの種類をスタティックライブラリにする。

http://gyazo.com/b5e7c8e45bc9cde22b0074c7e2759c09.png

ソースファイルが作られていないので、 ソリューションエクスプローラの「ソースファイル」で右クリックして、 「追加」「新しい項目...」を選んで、「C++ファイル(.cpp)」を選ぶ。 名前は、多分何でも良いけど、mylib.cppにしておいた。

mylib.cppに以下のプログラムを書く。

#include "stdafx.h"は必要なのかどうか分からなかったけどとりあえず書いておいた。

#include "stdafx.h"

int myAdd(int a, int b) {
	return a+b;
}

これをビルドすると、 Debug(またはRelease)に、mylib.libが出来上がっている。

http://gyazo.com/b69d890c23757c424a698978700b5c86.png

上で作ったlibを他のプログラムから呼び出して使ってみる

必要なものは、

  • mydll.lib

だけである。

Visual Studio 2010でtestlibという名前のWin32コンソールアプリケーションプロジェクトを新規につくる。 プロジェクトにファイルを追加する方法はいろいろあるらしいけど、ややこしいので、 mydll.libをtestlib.cppのあるフォルダにコピーしてしまった。

testlib.cppに以下のプログラムを作ることで、myAdd()関数を呼び出すことができる。(結果は7)

#include "stdafx.h"
#pragma comment(lib,"mylib.lib")
 
int myAdd(int a, int b);

int _tmain(int argc, _TCHAR* argv[])
{
	printf("value is %d\n",myAdd(3,4));
	return 0;
}

int myAdd(int a, int b);の宣言は、もちろん、testlib.hに書いてもよいし、 mylib.hを用意してそれに書いておくのも良い(たぶんそれが良い)。


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2012-10-23 (火) 10:44:46 (1852d)