03/02/18 03:50.net
前出の例をリンクするためには、ダイナミックリンクライブラリの属性と
エントリポイントを記述するリンカ疑似命令ファイルを作成しなければなりません。
以下のリンカ疑似命令ファイルはDLLSAMP.LNKという名前で、ダイナミックリンク
ライブラリの作成に使用できます。
system nt_dll initinstance terminstance
export dll_entry_1_
export dll_entry_2_
file dllsamp
注意:
1."SYSTEM"疑似命令は、Windows NTダイナミックリンクライブラリの作成を指定します。
2.ダイナミックリンクライブラリがWatcom C/C++ランタイムライブラリを使用すると、
新しいプロセスがダイナミックリンクライブラリにアクセスするたびにオートマティック
データセグメントが作成されます。この理由から、プロセスが最初にダイナミックリンク
ライブラリにアクセスするときには、初期化コードを実行する必要があります。このため
には、"SYSTEM"疑似命令に"INITINSTANCE"を指定しなければなりません。同様に、
"TERMINSTANCE"を指定して、プロセスがダイナミックリンクライブラリへのアクセスを
完了したときに、終了コードを実行できるようにする必要があります。Watcom C/C++
ランタイムライブラリを使用しなければ、これらのオプションは必要ありません。
3."EXPORT"疑似命令は、ダイナミックリンクライブラリのエントリポイントを指定します。
"EXPORT"疑似命令で指定する名前にアンダースコアを追加することに注意して下さい。
これは、レジスタ引数渡しの場合にコンパイラによって成されるデフォルトの命名規則です。
スタック引数渡しの場合には、アンダースコアはつきません。
ここで、以下のコマンドを実行して、ダイナミックリンクライブラリを作成できます。
C:\>wlink @dllsamp
DLLSAMP.DLLと呼ばれるファイルが作成されます。