新規命令を割り当てる
#deffunc p1 p2,p3…
p1=命令名 : 割り当てられる命令の名前 p2~p9 : バラメータタイプ名
ユーザーによる新規命令を指定します。 p1に新規命令の名前を、p2以降に呼び出しパラメータタイプを指定します。 #deffunc命令で定義した位置より以降は、指定された名前を命令語として 使用することが可能です。 新規命令は、#deffuncで指定された行以降が実行される内容になります。 実行はgosub命令と同じくサブルーチンジャンプとして行なわれ、 return命令でもとの実行位置に戻ります。 追加された新規命令では8つまでのパラメータを指定できるようになります。 それぞれのパラメータに指定できる型はp2~p9で指定します。 指定するパラメータタイプには以下のものがあります。 パラメータタイプ名 内容 --------------------------------------------------- int 数値 str 255文字以下の文字列 val 変数 たとえば、 #deffunc test val,str,int のように指定すると、以降はtestという命令が使えるようになり、 test 変数, 文字列, 数値 のようにパラメータを指定できるようになります。 ただし、バラメータタイプの指定には、いくつかの制限があります。 1. strタイプで渡せる文字列は255文字以下 モジュールに文字列を渡す場合には、基本的に255文字以下 となります。それ以上の文字数を持つ文字列を渡す場合は、 変数を経由するようにしてください。 2. val,strタイプは、最初の2つのみ指定可能 valおよび、strのタイプ指定は最初の2つにのみ可能です。 つまり、3番目以降のパラメータはすべてintとなります。 それぞれのパラメータは、mref命令のローカルパラメータとして取り出す ことが可能です。mref命令については、mref命令詳細を参照してください。 #deffunc 名前 onexit のように、引数を記述する部分に「onexit」を入れることで、 HSPのプログラムが終了した場合に、その命令が自動的に実行されます。 ただし、この命令内では以下の点に注意してください。 ・end、stop、wait、await、dialogなど時間待ちが起こる命令は使用できません ・mesなど画面に出力する命令は機能しません つまり最低限のメモリ解放や外部DLLの呼び出しなど最終的に行なわれる作業だけを 記述するものと考えて下さい。 同様の動作をするものにonexit命令がありますが、システムの処理としては [HSPのプログラムを中断] ↓ [onexit命令の飛び先を実行] ↓ [モジュールのクリーンアップ先を実行] ↓ [HSPリソースの完全な破棄] という順番になっています。 onexit命令の飛び先では、プログラムを中断すること自体を中止することも 可能ですが、クリーンアップ機能の場合は中断はできません。 また、複数のモジュールや、複数のクリーンアップ命令が登録された場合には、 登録された順番とは逆順に辿って次々に実行されていきます。
バージョン | 2.61 |
作成日 | 2004/03/01 |
著作者 | onitama |
URL | http://www.onionsoft.net/ |
備考 | ver2.61標準命令 |
タイプ | 内蔵命令 |
グループ | プリプロセッサ命令 |
hs ファイル | hsphelp\i_prep.HS |