我在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的情况下获取结果表?
提前感谢!
答案 0 :(得分:5)
不要调用setglobal并从C函数返回1。这告诉lua你的函数有1个返回值,你的最后一个例子就可以了。