在lua中调用undefined函数时接收任何通知
发布时间:2020-12-14 21:44:06  所属栏目:大数据  来源:网络整理 
            导读:在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_t
                
                
                
            | 
                         
 在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. 解决方法
 你没有.不是你的意思. 您可以将an  但是你无法区分函数调用和简单地访问成员变量,因为Lua不区分它们.如果从元方法返回一个函数,并且用户在元方法返回时调用函数调用操作符,则会调用它.否则,他们会得到一个他们认为合适的功能.他们可以存储它,传递它,稍后调用它,无论如何.这是一个价值,就像其他任何一样. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!  | 
                  
