« 仕事復帰中 | メイン | やるきNASU↓↓ »

[Delphi] Squirrel挫折進行中(変数の値を得る編)

squirrel

なかなかに情報が少ないため、Squirrel、挫折しながら進行中。

変数ひとつ得るにも一苦労……。

TestString <- "hoge"
TestInt <- 1234

というのがスクリプト上にあった時に、上の変数の中身を得たい。
(Squirrelは、初回代入は <- でないとダメな仕様なことに注意。スロットの作成というらしい)

文字列変数の中身(TestString)を得たいときは、呼び出し側(Delphi)で

  1. sq_pushroottable
  2. sq_pushstring
  3. sq_get(変数オブジェクトゲット)
  4. sq_getstring(変数から文字列へ)
  5. 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 ]

コメントを投稿

Twitter(今何してる?)

プロフィール

あわせて読みたい

あわせて読みたいブログパーツ

人気エントリー

About

2007年07月19日 11:16に投稿されたエントリーのページです。

ひとつ前の投稿は「[メンタルヘルス] 仕事復帰中」です。

次の投稿は「[メンタルヘルス] やるきNASU↓↓」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。