私はかなり長い間探してきましたが、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
構造を持っています
EDIT この投稿もともとテーブルを反復処理については、それがユーザー自身のグローバルを見つける方法についてでしたいませんでした。
しかし、私はこれをどのようにして解決できるのかを投稿しましたhere。
...テーブルエントリの残りの部分から自分自身のグローバルを区別することです[これを使用](http://stackoverflow.com/questions/1438842/iterating-through-a-lua -table-from-c)グローバルが '_G'のインデックスであることを思い出してください。 –
ルア5.1または5.2? –
@Bartekしたがって、_Gを繰り返し実行すると、すべてのグローバル変数が得られますか? –