lua_dostringで手抜き

Luaの欠点としてよく挙げられるのが、C側からのインターフェースの使いづらさ。いちいちスタックを弄くらなくてはならない面倒がある。テーブル内のメンバに触りたい場合など特に面倒くさい。そこで任意のluaコードを実行するlua_dostringを使って手抜きできることに気づいた。

// テーブル"DIO"内のテーブル"stand"の変数"name"を取得。
lua_dostring( L, "return DIO.stand.name" ); 
char* value = lua_tostring( L, -1 );

実行効率は当然悪いだろうから、上手にスタック操作をラップするほうが良いんだろうけど。

っていうか、Lua側にこういう関数作っといてcallするのと大して変わらないじゃん。漏れ頭悪すぎ_| ̄|○

function getStandName(table)
 return table.stand.name;
end

まあ、いちいちLua側で関数定義するの面倒だとか、グローバルテーブルを汚したくないとかいう時の手抜き法ってことで。
ここ数日どうもコードを書く気力が沸かない。無理に書こうとしても生産性悪杉。こういう時はパーッと気分転換したほうが良いのか。