我在C中有一个称为GetParameter的方法。我想从Lua中使用它。该方法将再次向Lua返回一些值。

Im在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的情况下获取结果表?

提前致谢!

最佳答案

不要调用setglobal并从C函数返回1。这告诉lua函数中有1个返回值,最后一个示例将起作用。

关于c++ - 从lua向C返回没有全局表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10120552/

10-10 05:33