2015-03-18 70 views
3

我想从Lua表中获取值。这是我写在Program.cpp:C++ Lua从Lua表中获取值

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

回答

2

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

+0

哦,我的上帝,我现在觉得很愚蠢。我的文学试图解决这个问题超过40分钟。非常感谢 – 2015-03-18 21:04:41