Я искал довольно долгое время, и я не нашел способ получить все глобальные переменные из C++. Рассмотрим этот небольшой сценарий тестирования Lua.Цикл всех глобальных переменных Lua в C++
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
структуры в этой точке (если это в какую-либо помощь)
EDIT Это сообщение не было первоначально о переборе стола, речь шла о том, как найти собственные глобал пользователя.
Однако я разместил решение, как это можно сделать here.
[Используйте] (http://stackoverflow.com/questions/1438842/iterating-through-a-lua -table-from-c), помня, что глобалы - это просто индексы в '_G'. –
Lua 5.1 или 5.2? –
@Bartek Итак, повторение через _G даст мне все глобальные переменные? –