4

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 ファイルが正しく読み込まれていることを確認しました。私は何を間違っていますか?

4

1 に答える 1

3

に変更%i%gます。lua_tonumberint ではなく float または double を返します。

于 2015-03-18T20:58:58.323 に答える