将 Lua 中的表从函数返回到 C,无全局对象。

我有一个C语言中的GetParameter方法,我想从Lua中调用它,并希望该方法将一些值再次返回给Lua。

在C中构建表的方式是最常见的:

lua_newtable(L);
for (int i = 0; i < parameters; i++)
{
    lua_pushnumber(L,i);
    lua_pushstring(L,myParameter);
    lua_settable(L,-3);
}

在我看过的所有示例中,完成后,必须使用lua setGlobal来设置结果表:

//set name for the result
lua_setglobal(ptLuaState, "resultTable");

使用此方法,我可以在Lua中访问结果表,像这样:

GetParameter("V111","V111Parameter")
printTable(resultTable);

这样做一切顺利,但是,有没有另一种方法可以在不使用setglobal的情况下完成此操作?我试图做一些类似于:

local mytable=GetParameter("V111","V111Parameter");

但不起作用。使用全局变量更好吗?我如何在不进行setglobal的情况下获取结果表?

提前致谢!

原文链接 https://stackoverflow.com/questions/10120552

点赞
stackoverflow用户457598
stackoverflow用户457598
不要在你的 C 函数中调用 setglobal 并返回 1。这告诉 Lua 你的函数有一个返回值,你的最后一个示例将起作用。
2012-04-12 09:25:18