我一直在尋找相當長的一段時間,並且我還沒有找到從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會給我所有的全局變量嗎? –