Lua を使用してスクリプトを作成し、C++ に埋め込みます。このプロセスではLuaBridgeを使用します。
私の Lua スクリプトには、C++ で使用するために最初に取得する必要がある変数がいくつかあります。さらに、非常に単純な関数があります。
run = function()
print ("state is on!")
end
ただし、この関数は特定の条件下でのみ呼び出されます。つまり、一連の複雑な計算の後でC++ コードから "true" が得られた場合にのみ呼び出されます。
私のLuaとLuaBridgeの知識によって制限されていますが、私が知っていることは次のとおりです。
loadscript(L, "script.lua")
lua_pcall(L,0,0,0)
を使用して、Lua スクリプトから変数と関数を読み取ることができます
LuaRef blabla = getGlobal(L, "blabla")
しかし今、変数を読み取って最初に使用し、次にメンバー関数で使用する必要があります
LuaRunner::LuaRun(){}
別の C++ クラスで定義
class LuaRunner
条件が確定され、条件が「真」の場合、この run() 関数が呼び出されます。この run() 関数を C++ メンバー関数で直接呼び出すのが最善です。
LuaRunner::LuaRun(){}
さらなる処理の制限のため。
したがって、これが可能かどうか疑問に思っていました:
を使用して関数を読み取る
LuaRef run = getGlobal(L, "run")
最初に他の変数と一緒にこの run() 関数を C++ コードのどこかに (おそらくクラス メンバー関数として) 「保存」します。クラス。これは可能でしょうか?可能であれば、どのように行うのですか?または他の良いアイデアはありますか?