C++ Lua 从 Lua 表中获取值

标签 c++ lua lua-table lua-api

我正在尝试从 Lua 表中获取值。这是我在 Program.cpp 中写的:

lua_State* lua = luaL_newstate();
luaL_openlibs(lua);
luaL_dofile(program->getLuaState(), "Script.lua");

lua_getglobal(lua, "table");
lua_pushstring(lua, "x");
lua_gettable(lua, -2);
printf("%i", lua_tonumber(lua, -1));

我在 Script.lua 中写了这个:

table = {x = 12, y = 32}

问题是这只会在控制台中写入 0。我检查过 lua 文件是否正确加载。我做错了什么?

最佳答案

%i 更改为 %glua_tonumber 返回一个 float 或 double,而不是一个 int。

关于C++ Lua 从 Lua 表中获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29132283/

相关文章:

c++ - WinAPI - C++ - 如何完全删除/清除窗口中的所有内容?

c++ - gcc安装在/usr/local以外时的默认头路径

c - 在 lua 和 C 之间共享数组

lua - Lua 中的清理表替代方案

Lua 函数检查是否 ipv4 或 ipv6 或字符串

function - Lua - 执行存储在表中的函数

c++ - 将嵌套表从 Lua 传递到 C

c++ - 防止实例化具有不完整类型的模板类

c++ - 使用 valgrind 时获取 int 变量指针的无效读取大小错误

file - Lua 保存字符串到文件