相关疑难解决方法(0)

循环遍历C++中的所有Lua全局变量

我一直在寻找相当长的一段时间,我还没有找到从C++中获取所有全局变量的方法.考虑一下这个小的Lua测试脚本.

myGlobal1 = "Global 1"
myGlobal2 = 2

function test()
  local l1=0
  print (myGlobal1,myGlobal2,l1)
end

test()
Run Code Online (Sandbox Code Playgroud)

假设您在print (myGlobal1,myGlobal2,l1)C++ 处暂停执行并获取所有全局变量(myGlobal1myGlobal2).这些示例是任意的,从C++的角度来看,全局变量是未知的.

我一直在看,lua_getglobal()但后来我需要先知道变量的名称.我看了看lua_getupvalue()但只得到了" _ENV"结果.

我想我可以lua_getglobal()尽快知道它们的名称,但是我如何得到全局变量列表(来自C++)?我确实有这个lua_Debug结构(如果有任何帮助)

编辑 这篇文章最初并不是关于迭代表,它是关于如何找到用户自己的全局变量.

但是,我发布了一个解决方案,可以在这里完成.

c++ lua global-variables lua-5.2

5
推荐指数
1
解决办法
4602
查看次数

Lua 访问表的键和值

我想在关卡编辑器中读取 Lua 文件,这样我就可以以可视化格式显示其数据供用户编辑。

如果我有一个像这样的 Lua 表:

properties = {
  Speed = 10,
  TurnSpeed = 5
}
Run Code Online (Sandbox Code Playgroud)

Speed显然是关键和10价值。我知道如果我知道像这样的键,我可以访问该值(前提是该表已经在堆栈上):

lua_pushstring(L, "Speed");
lua_gettable(L, idx); 
int Speed = lua_tointeger(L, -1);
lua_pop(L, 1); 
Run Code Online (Sandbox Code Playgroud)

我想要做的是在 C++ 中访问键的名称和相应的值。这可以做到吗?如果是这样我该怎么办?

c++ lua lua-table

4
推荐指数
1
解决办法
6213
查看次数

标签 统计

c++ ×2

lua ×2

global-variables ×1

lua-5.2 ×1

lua-table ×1