将一个没有全局的表从 lua 返回到 C
returning a table no global from lua to 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 并从 C 函数返回 1。这告诉 lua 你的函数有 1 个返回值,你的最后一个示例就可以工作了。
相关文章:
- 来自 std::list 的迭代器 .end() 按预期返回"0xcdcdcdcdcdcdcdcd"但 .begin()
- 什么时候在C++中返回常量引用是个好主意
- 你能重载对象变量名本身返回的内容吗
- 如何在C++中从Lua函数获取返回表?
- Lua 返回字符串 C++
- 在从 Lua 调用的C++中,lua_type(L,0) 返回未记录的 9
- C++ - 调用 Lua 函数始终返回 0
- 如何让Lua迭代器返回C结构
- 在 Lua 5.2 中返回 C++ 对象的实例
- 在C++中访问 Lua 函数的返回值,反之亦然
- 如何将C++函数绑定到lua,该函数使用luabind返回多个值
- 调用返回表的 lua 函数
- 存储和返回Lua用户数据
- 返回带luabind的lua类指针
- 如何从lua函数返回两个或多个表
- 编写一个Lua包装器,如何使用可以返回多种类型的方法从堆栈返回一个值
- Lua 不返回我的用户数据
- 如何通过for循环从C函数返回表的表到Lua
- 在c++中返回一个映射,用作lua中的表
- 多次调用返回字符串的Lua函数.如何使它有跨到下一个实例的字段