Lua从C获取并执行函数

时间:2011-04-05 21:00:59

标签: c api function lua

如果我有一些像这样的lua代码:

doSomething(function()
                print("Hello!")
            end)

如何使用C API为doSomething创建C Lua函数,然后保存传递给它的函数以便以后执行?

1 个答案:

答案 0 :(得分:3)

这只是堆栈上的正常条目。用lua_isfunction()检查然后使用luaL_ref()生成引用(以便垃圾收集器不会窃取它),然后可能lua_topointer()存储指向此对象的指针,取决于什么你想用它做什么。

当你完成它只是一个luaL_unref()