C ++ Lua从Lua表中获取价值

时间:2015-03-18 20:44:39

标签: 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文件正确加载。我做错了什么?

1 个答案:

答案 0 :(得分:2)

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