板 1- 前 次 新 レス
バージョンアップしたら上げるスレ
[8]管理人 ★:2006/10/03(火) 04:44:10
1.0.44.14 - October 2, 2006
パフォーマンス改善のため、変数の文字数を数える処理を必要なときしか行わないように変更されたらしい。
「StringLen」などを実行したときでも、変数の文字数が前回数えたときと同じなはずの時は、数え直さないようになったらしい。
これにより、AutoHotkeyが想定していないような状況で変数に格納された文字数が変化する場合、手動で「VarSetCapacity(Var,-1)」を実行して文字数を再計算させなくてはならなくなった。
例えば、DllCallで「&」演算子を利用して変数のバッファのアドレスを渡し、関数の処理によってバッファ内の文字列の文字数が変化するような場合である。
単に変数内の文字列を関数に処理させたい場合は、「Str,var」のように文字列型引数として渡せば関数の終了後に自動的に文字数を数え直してくれるのだが、文字列の途中から処理させたい場合には「&Var+offset」のようにして渡してやる必要がある。
前 次