我一直在寻找相当长的一段时间,并且我还没有找到从C++中获取所有全局变量的方法。考虑一下这个小Lua测试脚本。循环遍历C++中的所有Lua全局变量
myGlobal1 = "Global 1"
myGlobal2 = 2
function test()
local l1=0
print (myGlobal1,myGlobal2,l1)
end
test()
假设你在print (myGlobal1,myGlobal2,l1)
暂停执行,并从C++得到所有的全局变量(myGlobal1
和myGlobal2
)。这些例子是任意的,从C++的角度来看,全局变量是未知的。
我一直在寻找lua_getglobal()
但我需要先知道变量的名称。我看着lua_getupvalue()
,但结果只得到“_ENV
”。
我想我可以尽快使用lua_getglobal()
我知道它们的名字,但是如何获得全局变量列表(来自C++)?我有在这一点上lua_Debug
结构(如果它是任何人的帮助)
编辑 此信息最初是有关通过表迭代,它不是关于如何找到用户自己的全局。
但是,我发布了一个解决方案,可以如何完成here。
[使用这个(http://stackoverflow.com/questions/1438842/iterating-through-a-lua -table-from-c)记住全局变量只是'_G'中的索引。 –
Lua 5.1或5.2? –
@Bartek所以迭代_G会给我所有的全局变量吗? –