ポインタの文字列を取得する方法
bump 2013/4/20(Sat) 10:22:50|NO.53595
指定したポインタの文字列を取得したいのですが
何故かできません、
strf("%s",[文字列ポインタ])
でできると書いてあったのですがそれもできません
HSPではポインタから文字列が取得できないのでしょうか?
ht. 2013/4/20(Sat) 11:46:30|NO.53597
ポインタというのは単なる32bit整数値の格納された変数ですので文字列として解釈することはできません。
アドレスを基に新たに変数を作成することならできます。
a = "abc"
dupptr b, varptr(a), strlen(a) + 1, 2
mes strf("%s", b)
ツノン 2013/4/20(Sat) 12:18:45|NO.53599
このスクリプトを実行すれば、文字列ポインタから、文字列を読み込むことが出来ます。
#include "user32.as"
// キャラクターコードが wide文字である場合 1を返す。
#define global ctype IsWchar(%1) ((%1>=129 & %1<=159) or (%1>=224 & %1<=252))
t = "test文字列"
ptxt=varptr(t)
ptrtop=ptxt
*@
CharNextEx 0, ptxt , 0
c=stat&0xFF
ptxt+=IsWchar(c)+1
if(c==0){
dupptr get , ptrtop , ptxt-ptrtop , vartype("str")
mes get
stop
}
goto*@b