【发布时间】:2016-02-15 06:41:51
【问题描述】:
我正在使用 Lua 编写 scipts 并将它们嵌入到 C++ 中。我在这个过程中使用了 LuaBridge。
在我的 Lua 脚本中,我有需要首先检索一些变量以便在 C++ 中使用,此外,我还有一个非常简单的函数:
run = function()
print ("state is on!")
end
但是,此函数仅在特定条件下调用。即仅在经过一系列复杂计算后从 C++ 代码中获得“真”时调用。
受限于我对 Lua 和 LuaBridge 的了解,我知道的是:在我做之后
loadscript(L, "script.lua")
lua_pcall(L,0,0,0)
我可以通过使用从 Lua 脚本中读取变量和函数
LuaRef blabla = getGlobal(L, "blabla")
但现在,我需要先读出变量并使用它们,然后在成员函数中使用它们
LuaRunner::LuaRun(){}
在单独的 C++ 类中定义
class LuaRunner
条件将被获取,如果条件为“真”,将调用此 run() 函数。最好在 C++ 成员函数中直接调用这个 run() 函数
LuaRunner::LuaRun(){}
由于进一步处理的限制。
因此,我想知道这是否可能:
使用
读出函数LuaRef run = getGlobal(L, "run")
和其他变量一起“保存”这个run()函数在C++代码的某处(可能是类成员函数),然后运行() 函数可以稍后由同一类中的指针或对象调用。这可能吗?如果可能,该怎么做?或者还有什么好主意?
【问题讨论】:
-
是否要在 C++ 方法中使用 lua 函数“run”作为结果回调?
-
@Daniel c++ 方法中的“回调”是什么意思?很抱歉我是这方面的新手,您能否详细描述一下或给我一些网页链接?
-
回调只是一个作为参数传递给另一个函数的函数。 en.wikipedia.org/wiki/Callback_(computer_programming)
-
@Daniel 看起来很酷,我会详细学习并尝试,谢谢推荐这个
标签: c++ function lua luabridge