我花了6個小時試圖解決這個問題!我coulnt隨時隨地:■將lua表格從C++傳遞給.Lua腳本
我希望能夠在C創建一個Lua表++文件,然後傳遞到LUA腳本文件,它具有以下LUA功能:
function MTable (t)
local n=#t
for i=1,n do
print(t[i])
end
end
我動態創建的一個一個維陣列具有兩個字符串:
lua_newtable(L);
lua_pushstring(L,"10.10.1.1");
lua_pushstring(L,"10.10.1.2");
lua_rawseti(L,-3,2);
lua_rawseti(L,-2,1);
所以我現在在堆棧的頂部的表中。 我已經通過寫這個來驗證它: if(lua_istable(L,lua_gettop(L)))`返回1,表示它是一個表。
那麼我這樣做:
lua_getglobal(L, "MTable"); // push the lua function onto the stack
uint32_t result = lua_pcall(L, 1, 0, 0); //argument 1 is for the table
if (result) {
printf(stderr, "Failed to run script: %s\n", lua_tostring(L, -1));
exit(1);
}
,所以我得到了錯誤: 無法運行腳本:嘗試調用表值
請注意該文件還有其他幾個功能我從C++調用成功。
有人可以幫我解決這個錯誤嗎?這可能是來自LUA的錯誤嗎? cz我非常正確地遵循了步驟......我想!
這已經在Lua郵件列表中被詢問和回答。 – lhf