More ... | HSPHelp:mref
mrefmref p1,p2 [特殊なメモリを変数に割り当てる] p1=変数名 : 割り当てられる変数名 p2=0〜(0) : リソースID (割り当てるメモリ内容) 説明p1で指定された変数に、p2で指定したメモリ内容を割り当てます。
ローカルパラメータは、ユーザー定義命令(HSPHelp:#deffunc?)で新規に追加された命令のパラメータ内容が格納されています。 パラメータのタイプ(数値、変数、文字列)に従って取得することが可能です。 リソースIDに「ローカルパラメータ」を指定した場合は、 モジュールの呼び出し元(新規命令が実行された時)に指定されていた数値や変数のクローンとなります。 たとえば、「newfunc a」というように変数aがパラメータとして受け渡された時に、 モジュール側で、「mref i,16」を指定すると変数iが変数aと同等のものになります (HSPHelp:dup命令と同様です)。 ローカルパラメータとして、変数をそのまま取得する場合は、 ユーザー定義命令(HSPHelp:#deffunc?)で指定されたパラメータタイプも「変数」になっている必要があります。 ローカルパラメータとして取得した変数に値を代入すれば、もとの指定された変数の値も変化することになります。 また、ローカルパラメータに変数を指定した場合は、指定した変数の型(文字列か数値か)に強制的に変更されます。 リソースID48,49も、リソースID16,17と同様にローカルパラメータ変数を取得しますが、 こちらは配列の構造を含めた完全なクローンになります。たとえば、 「newfunc a.1」というように配列変数の一部をパラメータに指定した場合、 「mref i,16」では変数iは、変数a.1と同じになり、配列変数aとは異なるものになります。 これに対して、「mref i,48」の場合は変数iが配列変数aとまったく同等のものになります。 リソースID64,65のシステム変数は、たとえば「mref i,64」とした場合、 変数aがシステム変数statと同等になり、値を代入することができるようになります。 これにより、ユーザー定義命令内の計算結果などをシステム変数に反映して、呼び出し元に返すことができます。 リソース66のウインドウ内画像データ(VRAMデータ)は、表示されている画像を内容とする配列変数になります。 これにより、HSPHelp:poke?,HSPHelp:peek?命令などで画像データに直接アクセスが可能になります。 また、67以降も同様にHSPの内部データに直接アクセスできるようにするものですが、 通常は使う必要はありません。DLLへ渡すためのパラメータ準備のためなど、 ごく限られた用途のために用意されているもので、ほとんどの人は使うことはないはずです。 備考ver2.6標準命令 補足
ローカルパラメータ#1〜8は重複してはならない。 参照
|