[[How2Computing]] #author("2022-01-13T19:14:49+09:00","","") -関連トピックス --[[Mac OS X の Xcodeでライブラリを作る:http://is.ocha.ac.jp/~gradthesis/index.php?How2dylib]] --[[Windwos Visual Studio 2010 のC++で動的ライブラリ dll を作る:http://is.ocha.ac.jp/~gradthesis/index.php?How2dll]] //--[[Windwos Visual Studio 2010 で静的ライブラリ lib を作る:http://is.ocha.ac.jp/~gradthesis/index.php?How2lib]] --[[ccで作ったライブラリ(dylib)をJava (JNA) から使う(Mac OS X 編)::http://is.ocha.ac.jp/~gradthesis/index.php?How2lib]] *Windwos Visual Studio 2010 で静的ライブラリ lib を作る [#pa2a05ef] [[動的ライブラリdllを作る:http://is.ocha.ac.jp/~gradthesis/index.php?How2dll]] に比べたらむちゃくちゃ簡単です。 **簡単なliblをC言語で作る [#m1d981ac] 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を他のプログラムから呼び出して使ってみる [#f08ba74a] 必要なものは、 -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を用意してそれに書いておくのも良い(たぶんそれが良い)。