簡體   English   中英

lua函數參數預期接近<eof>

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM