C++ コードの場合:
class CWindowUI {
public CWindowUI(const char* title,int width,int height);
.....
};
static int CreateWindow(lua_State *l)
{
int width,height;
char *title;
CWindowUI **winp, *win;
name = (char *) luaL_checkstring(l, 1);
width= lua_tounsigned(l, 2);
height= lua_tounsigned(l, 3);
win = new CWindowUI(title,width,height);
if (win == NULL) {
lua_pushboolean(l, 0);
return 1;
}
winp = (CWindowUI **) lua_newuserdata(l, sizeof(CWindowUI *));
luaL_getmetatable(l, "WindowUI");
lua_setmetatable(l, -2);
*winp = win;
return 1;
}
Lua コードでは:
local win = CreateWindow("title", 480, 320);
win:resize(800, 600);
今私の質問は:
関数CreateWindow
は指定されたオブジェクトを返しますがwin
、関数resize
は定義されていません。Lua で未定義の関数を呼び出したときに通知を受け取るにはどうすればよいですか?
通知には、文字列"resize"
と引数が含まれます800,600
。未定義の関数をコールバック関数にマップするようにソースを変更したいのですが、正しくありません。