例如,我有一个 lua 脚本:
return {
version = 1.0
}
我在 C 代码中加载:
if (!luaL_loadfile(state, argv[1]) && !lua_pcall(state, 0, 0, 0)) {
如何访问该表?有类似get_global
and的功能get_local
,但在这种情况下它们不适合(出于明显的原因)。最初,我认为在启动时lua_pcall
我应该立即将返回的表放入堆栈,但我错了。
例如,我有一个 lua 脚本:
return {
version = 1.0
}
我在 C 代码中加载:
if (!luaL_loadfile(state, argv[1]) && !lua_pcall(state, 0, 0, 0)) {
如何访问该表?有类似get_global
and的功能get_local
,但在这种情况下它们不适合(出于明显的原因)。最初,我认为在启动时lua_pcall
我应该立即将返回的表放入堆栈,但我错了。
在不到半分钟的时间里,我自己找到了问题的答案:我的调用不正确
lua_pcall
——你需要设置 1 作为第二个参数。这是返回值的数量,所以我们将把我们的表放在堆栈上。我把这个答案留在这里 - 也许它对某人有用