[英]“Error in error handling” when calling lua function from C++
这与如何从C ++调用lua函数无关。 我已经可以成功做到了。 这涉及lua函数“ loadfile”在C ++调用的函数中使用时不再起作用。
我正在尝试将lua文件加载到另一个lua文件中,以便可以调用其功能。 如果将test()从functions.lua移到game.lua, mystring会收到“ test”。
但是,当我将init()函数添加到game.lua文件并将test()移动到functions.lua文件时:
C ++:
// Having loaded game.lua...
state["init"]();
std::string mystring = state["test"]();
game.lua:
function init()
loadfile("functions.lua")()
end
functions.lua:
function test()
return "test"
end
错误:
"Error in error handling"
当我使用ZeroBrane通过简单地测试此Lua脚本时:
init()
print(test())
一切正常...所以我使用C ++或使用lua文件的方式存在问题。
我在这里做错了什么? 为什么以这种方式使用loadfile似乎不起作用? lua是否不会初始化为使用C ++启动它的常规功能? 加载文件如何通过ZeroBrane而不是C ++进行工作真是很奇怪。
我正在使用Selene ,它是Lua的C ++ 11仅限标头绑定。
不要忘记建立lua上下文!
建立Lua上下文
using namespace sel;
State state; // creates a Lua context
State state{true}; // creates a Lua context and loads standard Lua libraries
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.