Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 卢阿普勒斯:如何将桌子推到堆栈中?_C++_Lua_Push_Lua Table_Luaplus - Fatal编程技术网

C++ 卢阿普勒斯:如何将桌子推到堆栈中?

C++ 卢阿普勒斯:如何将桌子推到堆栈中?,c++,lua,push,lua-table,luaplus,C++,Lua,Push,Lua Table,Luaplus,我想要一个函数在被Lua脚本调用时返回(键值-)表。因此,我必须将表推到堆栈中。 我知道如何将整数推入堆栈:state->PushInteger(10) 我也知道它是如何工作的字符串和其他数字,但我如何推动一个表到堆栈,此外,我甚至将如何创建它从C++方面? 这个网站通常能很好地解释一切: 但我真的很难理解LuaPlus是如何工作的。所以在这种情况下,这对我并没有什么帮助( 如果有人能在这里帮助我,那就太好了,我现在真的在试着这样做3天了。//将LuaObject推到Lua堆栈上的部分似乎是我认

我想要一个函数在被Lua脚本调用时返回(键值-)表。因此,我必须将表推到堆栈中。
我知道如何将整数推入堆栈:state->PushInteger(10)
我也知道它是如何工作的字符串和其他数字,但我如何推动一个表到堆栈,此外,我甚至将如何创建它从C++方面? 这个网站通常能很好地解释一切: 但我真的很难理解LuaPlus是如何工作的。所以在这种情况下,这对我并没有什么帮助(


如果有人能在这里帮助我,那就太好了,我现在真的在试着这样做3天了。//

将LuaObject推到Lua堆栈上的
部分似乎是我认为的答案

The cases where you would need to push a LuaObject onto the Lua stack are rare.  Nonetheless, the facility is provided through LuaObject's PushStack() function.

LuaObject tableObj(state);
tableObj.AssignNewTable();
tableObj.SetString("Key", "My String");

// It's often good practice to use a LuaAutoBlock here.
tableObj.PushStack();    // Be sure to clean it up when you're done!

还有一个更新。查找表创建部分。@greatwolf哇,这个只有5年历史,而不是9年。这应该是我正在使用的版本的版本:我读过,但没有得到它。:/I尝试过这个:但是成员PushStack()不存在。。我想我的LuaPlus版本太旧了(2012年6月)。我太害怕更新它了,因为我已经花了一周的时间来设置旧版本。我真的希望有另一种方法。:(@Forivin尝试使用
Push()
。这是我在检查luaplus的头后发现的方法名。我尝试过,但在调用函数时(从Lua端)我的程序立即崩溃。程序退出“代码3(0x3)”。可能还有其他事情我做错了吗?我想你仍然需要返回(从C++函数)。lua堆栈上应返回到lua的元素数。因此,该函数应
返回1
,而不是返回0。我尝试返回1,并尝试返回“state->GetTop()-top;”。它仍然与0x3冲突(