我花了近6小时试图解决这个问题! 我coulnt取得任何进展:■
我希望能够在C创建一个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);
所以现在我对堆栈的顶部的表中。 我已经通过此书面方式验证它:如果(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我非常正确遵循的步骤......我猜!