【发布时间】:2013-10-21 05:08:53
【问题描述】:
我有一个我写的 Lua 脚本,里面有两个函数:
function CallbackServerStatus ()
print("Status exec")
end
function CallbackServerInit ()
print("Server initialized\n")
end
这就是我尝试在 C++ 中调用 Lua 函数的方式:
printf("LUA | Exec LUA: CallbackServerInit()\n");
luaL_dofile(LuaEngine::state, "loaders/test.lua");
lua_getglobal(LuaEngine::state, "CallbackServerInit");
lua_pcall(LuaEngine::state, 0, 0, 0);
但是在控制台中"Server initialized\n" 是看不到的。我在这里做错了吗?甚至没有错误,当我删除CallbackServerStatus() 函数时,我只看到"Server initialized\n"。
【问题讨论】:
-
lua_pcall返回什么?如果是错误,压栈的错误信息的内容是什么? -
luaL_dofile返回什么?如果有错误,函数没有定义。 -
调用 lua_pcall 时出现错误:
attempt to call a nil value。当我删除我的 LUA 脚本中的第一个函数时它不会弹出错误,我只是不明白。 -
@Zinglish 好吧,如果你这么说,这意味着
CallbackServerStatus()没有注册。 -
您能否将您的 Lua 脚本加载到在控制台中运行的 Lua 中而不会出现错误?