では、具体的にどうすればよいのでしょうか?
普通、ライブラリを作るときはコマンドラインから行うのが
普通です。でも、最近はWindowsの普及でコマンドラインから
作業をするということを知らない人も増えてきました。
VC++1.51の場合、統合環境からライブラリを作ることができます。
その方法を説明しましょう。実に簡単です。
新しいプログラムを作る要領でプロジェクトを作ります。
その前に、いろいろなファイルを置くためのディレクトリを
用意しましょう。
メニューから「Project」「 New」を選択すると左のような
ダイアログボックスが出てきます。この時「Project Name」
にフルパスで直接書き込んでもよいのですが、面倒くさい場合は
「Browse...」ボタンを押します。そして目的の
フォルダまで行ったら「ファイル名(N)」の所にmylib.mak
のように名前を付けます。そうすると・・・
左の図のようになります。また、この時「Project Type」 は「Static library(.LIB)」 にしておいて下さい。これで「OK」ボタンを押します。 すると、このプロジェクトに参加させる?ファイルを 聞いてきます。まだファイルは何もできていないので 「Close」ボタンを押します。次にメニューバーから 「File」「New」を選択します。そして、エジット画面が出てきたら ライブラリの元になるソースを書いていきます。 プログラムを作るわけではないのでmain関数は不要です。 (当たり前ですね)ここでは、文字列をもらって 「***」とかいたね と表示するprint関数を 記述してみましょう。
これをmylib.cという名前で保存しましょう。 stdio.hはprintf関数を使っているので必要です。#include <stdio.h> int print(char *str) { printf("「%s」と書いたね\n", str); return 0; }
次に、このmylib.cをプロジェクトに参加させる必要があります。 メニューバーから「Project」「Edit...」を選択して下さい。 そして、「mylib.c」を選んで「Add」ボタンを押して下さい。
次に大事なのがこのライブラリのメモリモデル を何にするか?です。とりあえずはsmallにしておきましょう。 メモリモデルについては、後の章で解説します。
メニューバーから「Options」「Project...」を選択して下さい。
「Build Mode」は「Release」にしておいて下さい。
「Compiler...」ボタンを押してコンパイラのオプションを決めます。
「C/C++ Compiler Options」ダイアログボックスが出てきたら、
「Category」の所を「Memory Model」にしてください。そして
「Model:」のとろこを「Small *」にしてください。
これで準備OKです。あとは、リビルドボタンを押して
1,2秒待つとライブラリの一丁上がりです。
「mylib.lib」という自作のライブラリができあがっているはずです。
では、今作ったmylib.libが本当にライブラリとして働くのか 試してみましょう。簡単なプログラムを書いてみましょう。 今作ったライブラリはsmallメモリモデル用なのでこれから作る プログラムもsmallメモリモデルでなくてはいけません。
簡単のために自作print関数のプロトタイプを ソースに直接書きましたが、これをヘッダーファイルに書くのが 一般的です。自作のライブラリしか使っていないので stdio.hすらもインクルードしていないことに注意して下さい。 これを、コンパイルして実行してみましょう。 今までのDOSのプログラムを作るのと同じ要領です。 メモリーモデルをsmallにすることと、プロジェクトに 「test.c」(ソース・ファイル)の他に「mylib.lib」を 加えることを忘れないで下さい。/* test.c */ extern int print(char *); int main(void) { print("これはライブラリのテストです"); return 0; }
ライブラリは正しく動作しているようですね。
(こんな変な関数は何の役にもたたんなあ・・・)
次回は、もう少しましなライブラリを作ります。マイクロソフト以外のコンパイラを
お使いの人はマニュアル等でライブラリの作り方を
研究してみて下さい。きっと似たような方法で作れるはずです。
Update Mar/03/1997 By Y.Kumei