なかなかに情報が少ないため、Squirrel、挫折しながら進行中。
変数ひとつ得るにも一苦労……。
TestString <- "hoge" TestInt <- 1234
というのがスクリプト上にあった時に、上の変数の中身を得たい。
(Squirrelは、初回代入は <- でないとダメな仕様なことに注意。スロットの作成というらしい)
文字列変数の中身(TestString)を得たいときは、呼び出し側(Delphi)で
- sq_pushroottable
- sq_pushstring
- sq_get(変数オブジェクトゲット)
- sq_getstring(変数から文字列へ)
- sq_pop(後始末)
具体的に、生のAPIを使うと、こういう感じ。
(FSquirrelVM は、あらかじめ、sq_openして得ておくとする)
(下記コードは、UnitTestのコードなので、ご了承を)
整数の変数の中身(TestInt)を得たいときは、同様に
sq_pushroottable -> sq_pushstring -> sq_get -> sq_getinteger -> sq_pop
という感じです。
長っ!
これは、めんどうくせー('A`)
エラー処理入れたら、10行近くになる。
Luaもこんな感じだったけ?(忘れた)
上記の方法だと、TestIntとか、TestStringしか取れないので、
TestInt.Hoge.Foo とか得るときにどうすんだろう、と。
一発で、変数名を渡して、評価する方法ないのかなー。
カテゴリ: [ Delphi ]