从C ++调用Lua函数

时间:2014-07-11 03:58:37

标签: c++ c++11 lua meta-method

我使用的是最新版本的LuaJit,需要一些帮助才能开始使用。我需要的是让一堆暴露给Lua环境的函数可以在脚本中重写以运行用户提供的代码,然后在C ++中设置事件期间调用这些函数

例如,当用户按下他们的TAB键时,它将从lua环境调用一个函数,例如OnScoreboardOpen(),当用户释放他们的TAB键时,它将调用相应的函数OnScoreboardClose()这些函数可以附加像游戏或通用汽车这样的元方法。

有人可以指点我一些教程或示例代码,说明如何实现这一目标吗? 非常感谢你的时间。

1 个答案:

答案 0 :(得分:2)

基本上你使用这两个函数:lua_pushXXX和lua_pcall

取决于您如何命名LUA函数,它可以是普通函数或对象方法。 即。

function OnScoreboardOpen()
end

OR

function Game:OnScoreboardOpen()
end

使用普通功能相对简单,只需:

// TODO: sanity check
lua_getglobal(L, name);
lua_pushnumber(L,123);
lua_pcall(...);