我有一个Lua函数,它返回一个包含一组字符串的表格。使用以下代码可以正常运行该函数:
lua_pushstring (lua, "funcname");
lua_gettable (lua, LUA_GLOBALSINDEX);
lua_pushstring(lua, "someparam");
lua_pcall (lua, 1, 1, 0);
该函数返回一个表格。我该如何从我的C++代码中读取其内容?
如果函数不抛出任何错误,则 lua_pcall 将会:
这意味着,如果您的函数不抛出任何错误,您可以立即使用 lua_setfield - lua_pcall
的工作方式就像 lua_call 一样:
lua_pushstring (lua, "funcname");
lua_gettable (lua, LUA_GLOBALSINDEX);
lua_pushstring(lua, "someparam");
lua_pcall (lua, 1, 1, 0);
lua_setfield(L, LUA_GLOBALSINDEX, "a"); /* set global 'a' */
这将相当于:
a = funcname(someparam)
lua_next()
将枚举表的所有内容,但如果已知索引,则直接访问表可能更容易。 如果已知索引,则lua_gettable()
、lua_getfield()
、lua_rawget()
或lua_rawgeti()
都可以访问表的内容。 - gwelllua_gettable
,我假设他至少已经知道其中一些。 - sbk