Cの関数をバインドする


POINT Lua <-> C で Data を交換するのは, すべてスタック経由 Lua からの引数もスタック経由でうけとり、 C からの返値をスタックにのせる
int add( lua_State *s ) { printf( "call func\n" ); // 第2引数をスタックから int として取得 int n2 = luaL_checkint(s, -2); // 第一引数 int n1 = luaL_checkint(s, -1); int ret = n1 + n2; // 戻値をスタックに積む lua_pushnumber( s, ret ); // スタックに積んだ数を返す。 return 1; } int main() { printf( "test\n" ); lua_State *s; s = lua_open(); luaL_openlibs( s ); // add lua_register(s, "add", add ); //luaL_dofile( s, path.c_str() ); luaL_dofile( s, "d:/work/pro/lua/script/test.lua" ); lua_close( s ); return 0; }