*バインダを使わない決断も重要 [#v2d92671]
-グローバル変数の読み書き、グローバル関数登録、グローバル関数実行程度なのであれば、~
バインダを使わない決断をした方が良いと思います。~
バインダを使わない決断をした方が良いと思われます。~
~
そして、開発状況に合わせて、「C++ ⇔ Lua」間で良く行うやり取り、~
に関するところだけ自分でラッピングするのが良いでしょう。~
一般的には
-- C++側から、指定のLua ファイルの読込 & 実行
-- C++側から、指定のLua文字列の実行
-- C++側から、数値タイプのLuaグローバルの変数の取得
-- C++側から、文字列タイプのLuaグローバルの変数の取得
-- C++側からの関数登録については、int xxx(lua_State* L) { ・・・ } でカリカリ記述

特に「tolua++」「SWIG」などによるバインダは、その開発工程において~
通常のC++開発工程からはズレた特殊な工程が入り込んできますので、
ソースの見た目は良くとも、開発工程全体として良くなっているかは疑問符が付きます。
-予想される利用状況に合わせて、「C ⇔ Lua」間で良く行うやり取りに関するところだけ、~
自作でラッピングするのが良いでしょう。~
~
又、「luaBind」にはboostが必要となりますので、~
「boostをプロジェクトに入れられない/入れたくはない(そのようなことは非常に多い)」
|C から ''Luaファイル''を実行|
|C から ''指定のLua文字列''の実行|
|C から ''Luaのグローバルの変数(数値・文字列)''の取得|
|それら型を越えるデータのやりとりは、専用の値取得・設定関数を作成する。|
~

--Luaの変数取得や関数登録は、ステートの空間である「lua_State *L」と、~
スタックとのやり取りという非常に単純なものです。~
- 小さなプロジェクトの場合、このような単純なことで十分間に合うことが多いものです。~


トップ   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS