シェアードライブラリコール

PEF形式のSharedライブラリから関数を呼ぶこともできます。まず、リンクしたいシェアードライブラリを"LIBRARY"宣言します。
LIBRARY   ASharedLibrary

それから、関数のパラメタ情報を名前付きパラメターと同じような中括弧(curly bracket)を用いて付け加えた形で、関数を"LIBCALL"宣言します。
LIBCALL   ALIBFunction  { parm1 %fparm1 -- rc }
浮動小数点数のパラメタないし戻り値については、最初に"%"をつけなければなりません。逆に、整数パラメタ宣言の初めの文字に"%"を使うことはできません。注意すべきなのは浮動小数点数なのか整数なのかという点だけです。変数型は考える必要はありません。ただ、わかりやすいように、宣言時にその数値の意味が分かる名前を使うことをお勧めします。

ライブラリが宣言されると、その後に宣言されたlibcall関数は、途中に別の新たなライブラリが宣言されない限り、はじめのライブラリに属しているものとして検索されます。つまり、LIBCALL宣言の直前で宣言されたLibraryから検索されるということです。ですから、ライブラリ宣言とそれに属する関数のlibcall宣言は、できるだけまとめて一カ所に置くのがよいでしょう。

宣言に際しては、大文字小文字を正確に書き分けるようにしてください(case sensitiveです)。

LIBCALL宣言の後は、通常のポストフィックスのMopsワードであるかのように利用できます。これは SYSCALL関数と同じです。

ライブラリが存在しなかったり、その中に要求された関数が発見できなかった場合には、初めてその関数が呼び出されたとき、つまり、ランタイム時にエラーが表示されます。

関連項目:






最終更新:2018年12月21日 21:53