1

Lua の C API でのテーブルの扱いがよくわかりません。現在開発中のインターフェイスでは、c 関数に指定されたテーブルの内容を読み取る必要があります。

例.lua:

myVector2 = {["x"]=20, ["y"]=30}
setSomePosition(myVector2)

「setSomePosition」として登録する C 関数:

static int lSetSomePosition(lua_State *L)
{
    //number of arguments
    if(lua_gettop(L) != 1)
    {
        //error handling
        return 0;
    }
    //Need your help with the following:
    //extract tables values of indexes "x" and "y"

    return 0;
}

私が行っているインデックスを知る必要があるテーブルを処理する方法がいくつかあることは知っています。私は今これについて混乱しているだけで、研究すればするほど混乱します。おそらく、私が求めているものを適切な用語で説明する方法を本当に知らないからです.

私のc関数のギャップを埋める方法について、コメント付きの良いサンプルコードを本当に感謝します:)

(このトピックのわかりやすいガイドをお持ちの場合は、コメントしてください)

4

1 に答える 1

2
lua_getfield(L, 1, "x") //pushes a value of t["x"] onto the stack
lua_tonumber(L, -1) //returns the value at the top of the stack
lua_getfield(L, 1, "y") //pushes a value of t["y"] onto the stack
lua_tonumber(L, -1) //returns the value at the top of the stack
于 2014-11-02T14:17:40.867 に答える