LotusScript® では、外部 C 関数を呼び出すことができます。名前の付いたライブラリモジュール内の外部 C 関数が使用できます。通常、そのようなライブラリモジュールには、いくつかの C 関数が含まれています。Windows では、ダイナミックリンクライブラリ (DLL) と呼ばれています。このライブラリへは、すべての Windows ユーザーが Windows アプリケーションプログラミングインターフェース (API) を使用してアクセスできます。
C 関数を使用するには、関数の入力パラメータと出力パラメータ、戻り値、関数が実施する演算を説明したマニュアルが必要です。例えば Windows Software Developer's Kit には Windows API のマニュアルが含まれています。Windows API は市販されているさまざまな書籍にも記述されています。
LotusScript から外部のライブラリモジュールに含まれる C 関数を呼び出すには、呼び出す各関数に対して、外部 C 呼び出しの Declare ステートメントを使用する必要があります。外部ライブラリ関数が複数のスクリプトで呼び出されないようにするには、ロードされたままになっているモジュールで Declare Public ステートメントを使用します。
次の表は、LotusScript から外部関数を呼び出すときに使用しなければならない関数呼び出し規則を示しています。
プラットフォーム |
呼び出し規則 |
---|---|
Windows 3.1 |
Pascal |
Windows 95、Windows NT |
STDCALL |
OS/2 |
_System |
UNIX |
CDECL |
Macintosh |
CDECL |
C++ コンパイラを使用すると、関数の名前が変更されてしまいます。正確な名前をそのまま保持するには、extern "C" {. . .} 構造を使用します。
Windows 95 や Windows NT を使用している場合、書き出された DLL 関数の名前は、大文字と小文字が区別されます。しかし、LotusScript では、Declare ステートメントで名前が大文字に自動的に変換されます。書き出された DLL を呼び出すには、正しい大文字と小文字の関数名を指定するように、Declare ステートメントに Alias 節を使用します。LotusScript では、別名だけが残されます。
' The following statements declare an exported DLL with an
'alias (preserving case sensitivity), and then call that
'function.
Declare Function DirDLL Lib "C:¥myxports.dll" _
Alias "_HelpOut" (I1 As Long, I2 As Long)
DirDLL(5, 10)