HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2020
0501
mikumo拡張プラグイン #func タイプ 数値指定2解決


mikumo

リンク

2020/5/1(Fri) 11:39:30|NO.90251

hspextやhgimgなど、同梱されている拡張プラグインの多くはhspext.asやhgimg.asなどのヘッダ?ファイルで命令の登録
を行っていますが、その中の
#func aplact aplact $10

といった記述の$10などの数値は何を意味しているのでしょうか。 hspsdk/hspdll.txtなどを読んでも説明が見当たらず…



この記事に返信する


f(稼ぎ時)

リンク

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



mikumo

リンク

2020/5/1(Fri) 17:43:52|NO.90257

お仕事おつかれさまです…
なるほど。ありがとうございます。助かりました。



ONION software Copyright 1997-2023(c) All rights reserved.