8

lua スクリプトを呼び出すには、C 関数を実装する必要があります。その関数からテーブルとして配列を返す必要があります。コードブローを使用しましたが、クラッシュしました。


struct Point {
    int x, y;
}
typedef Point Point;


static int returnImageProxy(lua_State *L)
{
    Point points[3] = {{11, 12}, {21, 22}, {31, 32}};

    lua_newtable(L);

    for (int i = 0; i  3; i++) {
        lua_newtable(L);
        lua_pushnumber(L, points[i].x);
        lua_rawseti(L, -2, 2*i+1);
        lua_pushnumber(L, points[i].y);
        lua_rawseti(L, -2, 2*i+2);
        lua_settable(L,-3);
    }

    return 1;   // I want to return a Lua table like :{{11, 12}, {21, 22}, {31, 32}}
}

4

2 に答える 2

4

に置き換えlua_settable(L,-3)てみてくださいlua_rawseti(L,-2,i+1)

于 2013-08-28T11:48:06.027 に答える