| |||
PVAL構造体が使えない
| |||
|
HSP2ではmref命令を用いて変数の情報が詰まったPVAL構造体にアクセスすることができましたが、 HSP3からはmref命令でPVAL構造体にアクセスできなくなりました。 しかし、コレはPVAL構造体がなくなったわけでも、PVAL構造体にアクセスできなくなったわけではありません。 単純にmref命令を用いて直接アクセスできなくなったというだけのことです。 mref命令のPVAL構造リソースの代わりに追加されたHSPCTX構造体と中にPVAL構造体のアドレスが入っており、 そのアドレスの先を見ることでPVAL構造体へアクセスすることができるようになっています。 このようなわかりにくい・アクセスしにくい形に変わったのは、 #deffunc命令などのユーザー定義命令のパラメータ仕様変更と深い関係があると思います。 HSP2は数値定数以外の文字列定数と変数は先頭2つまでしか設定できない仕様だったので、 1024が1つ目、1025が2つ目のパラメータと決め打ちできましたが、 HSP3から「パラメータ数が最大8」の制限が撤廃され、 また、何番目のパラメータでも文字列定数や変数が指定可能になり、1024が1つめで…とはできなくなったわけです。 そんなこんなで変更となったのは仕方ないとして、じゃあ具体的にどうアクセスするのか? それについてはTIPSにて説明してますので、そちらを参照してください。 |