動的ライブラリdllを作る に比べたらむちゃくちゃ簡単です。
Visual Studio 2010から「新しいプロジェクト」「Win32コンソールアプリケーション」を選ぶ。名前は、mydllとしておく。
次に開くアプリケーションウィザードで、アプリケーションの種類をスタティックライブラリにする。
ソースファイルが作られていないので、 ソリューションエクスプローラの「ソースファイル」で右クリックして、 「追加」「新しい項目...」を選んで、「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が出来上がっている。
必要なものは、
だけである。
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を用意してそれに書いておくのも良い(たぶんそれが良い)。