int main() { lua_State *luaState = lua_open(); // 创建 Lua 状态. 其实就是一个数据结构. luaL_openlibs(luaState); // 加载所有标准库, 例如: print 等. luaL_dofile(luaState, "../Debug/test.lua"); //index为0,表示把栈全清空 lua_settop(luaState, 0); //根配置入栈 lua_getglobal(luaState, "SceneConfig"); //key入栈 lua_pushinteger(luaState, 1); //key弹出得到key对应的table入栈 lua_gettable(luaState, 1); //子Key入栈,此时内table索引为-2 lua_pushstring(luaState, "name"); //得到name对应的值,key出栈,值入栈 lua_gettable(luaState, -2); //获得栈顶值 cout << lua_tostring(luaState, -1) << endl; //栈顶值出栈 lua_pop(luaState, 1); //压入key值 lua_pushstring(luaState,"sex"); //弹出key值,对应的值入栈 lua_gettable(luaState, -2); //得到栈顶值 cout << lua_tointeger(luaState, -1) << endl; getchar(); }
原文:http://www.cnblogs.com/beyond-time-space/p/4646286.html