|
2020/5/1(Fri) 11:52:40|NO.90252
HSP2の頃の仕様だ。
HSP2.6ヘルプより
#func 新規名称 関数名 タイプ [外部DLL呼び出し命令登録]
説明
外部DLLを呼び出すための新しい命令をコンパイラに登録します。
新規名称、関数名、タイプをスペースで区切って書きます。関数名は 大小文字を含めて厳密に書かなければなりません。 func命令が処理されると、コンパイラに新規名称で指定した命令が追加 されます。新しい命令は、他のHSP命令と同様に処理されます。
つまり、
新規命令 p1,p2,p3,p4
のようにパラメータを4つまで渡すことのできる命令となります。 パラメータのp1,p2,p3,p4の内容はタイプによって異なります。
タイプは、呼び出しパラメータのバリエーションに対応した数値で設定します。 タイプの数値には以下のような種類があります。
(p1〜p3までのパラメータ)
タイプ0 : 新規命令 p1,p2,p3,p4
( p1=int, p2=int, p3=int )
タイプ1 : 新規命令 p1,p2,p3,p4
( p1=変数バッファへのポインタ, p2=int, p3=int )
タイプ2 : 新規命令 p2,p3,p4
( p1=BMSCR構造体へのポインタ, p2=int, p3=int )
タイプ3 : 新規命令 p1,p2,p3,p4
( p1=変数情報PVAL構造体へのポインタ, p2=int, p3=int )
タイプ4 : 新規命令 p2,p3,p4
( p1=int, p2=str, p3=int )
タイプ5 : 新規命令 p1,p2,p3,p4
( p1=変数バッファへのポインタ, p2=str, p3=int )
タイプ6 : 新規命令 p2,p3,p4
( p1=BMSCR構造体へのポインタ, p2=str, p3=int )
タイプ7 : 新規命令 p1,p2,p3,p4
( p1=変数情報PVAL構造体へのポインタ, p2=str, p3=int )
(p4のパラメータ)
各タイプ+$00 : p4=int
各タイプ+$10 : p4=システム変数refstrへのポインタ
各タイプ+$20 : p4=ファイルハンドルdpminfoへのポインタ
各タイプ+$30 : p4=パレットデータrgbptrへのポインタ
(その他)
各タイプ+$80 : ver2.5専用のPVAL構造体を使用する
各タイプ+$100 : HSP終了時に自動的に呼び出される関数
(クリーンアップ関数)の指定
パラメータの表記で、intは数値、strは文字列となります。 intのパラメータが省略されている場合は、0がDLLに渡されます。 それ以外のパラメータの省略はできません。 p1が、BMSCR構造体へのポインタの場合はパラメータの数が1つ少なく なるので注意してください。
外部DLLへのリンクは、HSP2.EXEの起動時に行なわれます。もし、指定 したDLL名や、そこに含まれている関数名が1つでも見つからなかった 時には、「DLL not found」というエラーが表示されHSPは終了します。
備考
ver2.61標準命令
参照
#uselib

| |