CallDLLF

 

外部DLLのFASTCALL規約関数の呼び出し

Magic xpaからFASTCALL呼び出し規約でDLLを呼び出します。

構文:

CallDLLF(モジュール名.関数名,引数型文字列,パラメータ1 ,パラメータ2 ,..)

パラメータ:

  • モジュール名.関数名 …… DLL のモジュール名と使用する関数名

  • 引数型文字列 …… 一つ一つの文字がパラメータタイプを意味する文字列
    最後の一文字が関数の戻り値の型を意味します。

  • パラメータ …… DLL への引数

戻り値:

DLL 内の指定した関数が返す値

例:

CallDLLF('mydll.lmath','1L44',A,B,C)

 

対応するC関数は、long lmath(char action, long *a, long b)となり、DLL内の関数であるlmath からの戻り値が返ります。

 

CallDLLF('mydll.add_str','AAA',A,B)

 

対応するC関数はchar *add_str(char *a, char *b)となり、DLL内の関数のadd_str からの戻り値が返ります。

注意事項:

  • FASTCALL は、DLL をコンパイルする際の呼び出し規約で、fastcall と指定されているものです。

  • パラメータで結果を受け取る関数を実行しても、結果を受けることはできません。

  • パラメータとして文字データを直接指定した場合、[動作環境]の[外部コードページ]で指定されたコードページに基づいて値がエンコードされます。このようなプログラムを使用する場合は、CodePage関数でコードページを「932」に設定するか、文字型変数項目を指定するか、UnicodeToANSI関数で変換する必要があります。