c++ - 从 lua 返回一个非全局表到 C

标签 c++ variables lua global lua-table

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

提前致谢!

最佳答案

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

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

相关文章:

c++ - Netbeans C++ 附加命令(使用tolua++)

lua - 我如何才能获取目标协程中的协程名称?

lua - 你如何在 sublime text 3 中执行 lua 文件?

c++ - 向现有 Qt 应用程序添加表单

ios - Objective-c RegEx 变量名称($1、$2 等)

python - nonlocals() 在哪里?

c - 随机数数组中的变量有问题

c++ - 如何在没有 Boost 的情况下在 Xcode C++11 中独立使用 Asio

c++ - 头文件在整个程序中只包含一次?

c++ - 获取字节中 4 个最低有效位的最快方法是什么(C++)?