[英]lua function argument expected near <eof>
我嘗試在C ++項目中使用lua。 為了執行lua,我將其編寫為:
#include <lua.hpp>
...
luaEngine = luaL_newstate();
luaL_openlibs(luaEngine);
register_results(luaEngine); // For register c++ object in the LUA script as metatable
lua_pushstring(luaEngine, resultsId.c_str());
lua_setglobal(luaEngine, "resultsId");
lua_pushboolean(luaEngine, needReloadModel);
lua_setglobal(luaEngine, "needReload");
...
e = luaL_loadbuffer(luaEngine, script.c_str(), script.size(), NULL);
if(e != 0)
// error message
e = lua_pcall(luaEngine, 0, 1, 0);
if(e != 0)
// error message
...
lua_close(luaEngine);
和lua腳本:
local Res = ResUpdateLUA(resultsId)
if current_result == "Normal" or current_result=='-' then
status = 'E'
else
status = 'O'
end
needReload = Res:setShowAnalyte('2320', status)
那沒有用,我收到錯誤消息:
[string "?"]:7: function arguments expected near <eof>
但是當我添加
print(needReload)
在lua腳本的末尾,它很好用。 我究竟做錯了什么?
錯誤消息表示Lua在看到Res:s
但在看到(
之前到達了源的結尾。
我懷疑script.size()
錯誤。 但我無法解釋為什么添加該行。
謝謝大家的答案。 是的,當將script.size()
替換為e = luaL_loadbuffer(luaEngine, script.c_str(), strlen(script.c_str()), NULL);
時,這很麻煩e = luaL_loadbuffer(luaEngine, script.c_str(), strlen(script.c_str()), NULL);
開始工作正常。 對不起,我的愚蠢問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.