从C++调用Lua函数

我正在使用最新版本的LuaJit,并需要一些帮助入门。我需要将一堆函数公开给Lua环境,以便在脚本内被覆盖以运行用户提供的代码,这些函数将在C ++中设置事件期间调用。

例如,当用户按下他们的TAB键时,它会调用来自lua环境的函数,例如OnScoreboardOpen(),当用户释放他们的TAB键时,它会调用相应的函数OnScoreboardClose(),这些函数可以附加到类似Game或GM的元方法上。

是否有人可以指向一些教程或示例代码,展示如何实现这一点? 非常感谢您的时间。

点赞
用户1094101
用户1094101

基本上,您可以使用这两个函数:lua_pushXXX 和 lua_pcall。

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

function OnScoreboardOpen()
end

或者

function Game:OnScoreboardOpen()
end

使用普通函数相对简单,只需执行:

// TODO: sanity check
lua_getglobal(L, name);
lua_pushnumber(L,123);
lua_pcall(...);
2014-07-11 04:26:50