【发布时间】:2013-12-29 15:45:32
【问题描述】:
我已经搜索了很长时间,但还没有找到从 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。
【问题讨论】:
-
Use this 记住全局变量只是
_G中的索引。 -
@Bartek 所以遍历 _G 会给我所有的全局变量吗?
-
@Tadeusz 它是 Lua5.2,如标签所示 ;)
标签: c++ lua global-variables lua-5.2