请问lua与C++绑定的问题

现像:
在c++中函数中,使用了结构体做为参数的类型,生成的绑定后,在lua的调用中,参数总是会出错,请问一下原因,下面贴部分代码出来:
.h文件中
定义类

class UpdateInfo
{
public:
	string VersionUrl;
	string UpdateUrl;
	int DefaultSize;
};

.cpp文件中

class UpdateService
	:public Ref
{
    void Start(UpdateInfo *info)
}

添加修改genbindings.py相关文件,生成的文件中的相关函数如下:

int lua_UpdateService_UpdateService_Start(lua_State* tolua_S)
{
    int argc = 0;
    UpdateService* cobj = nullptr;
    bool ok  = true;

#if COCOS2D_DEBUG >= 1
    tolua_Error tolua_err;
#endif


#if COCOS2D_DEBUG >= 1
    if (!tolua_isusertype(tolua_S,1,"UpdateService",0,&tolua_err)) goto tolua_lerror;
#endif

    cobj = (UpdateService*)tolua_tousertype(tolua_S,1,0);

#if COCOS2D_DEBUG >= 1
    if (!cobj) 
    {
        tolua_error(tolua_S,"invalid 'cobj' in function 'lua_UpdateService_UpdateService_Start'", nullptr);
        return 0;
    }
#endif

    argc = lua_gettop(tolua_S)-1;
    if (argc == 1) 
    {
        UpdateInfo* arg0;

        ok &= luaval_to_object<UpdateInfo>(tolua_S, 2, "UpdateInfo",&arg0, "UpdateService:Start");
        if(!ok)
        {
            tolua_error(tolua_S,"invalid arguments in function 'lua_UpdateService_UpdateService_Start'", nullptr);
            return 0;
        }
        cobj->Start(arg0);
        lua_settop(tolua_S, 1);
        return 1;
    }
    luaL_error(tolua_S, "%s has wrong number of arguments: %d, was expecting %d \n", "UpdateService:Start",argc, 1);
    return 0;

#if COCOS2D_DEBUG >= 1
    tolua_lerror:
    tolua_error(tolua_S,"#ferror in function 'lua_UpdateService_UpdateService_Start'.",&tolua_err);
#endif

    return 0;
}

在上面的函数中
ok &= luaval_to_object<UpdateInfo>(tolua_S, 2, "UpdateInfo",&arg0, "UpdateService:Start");
这段代码中,ok的值始终都是false,,因此会提示错误,请问这个是什么原因造成的,如果解决?

还补充一下:
如果在把lua中函数做为一个参数与C++绑定起来?
谢谢各位!

网页编辑效果不好,会自动分成行多段,影响了浏览效果,谅解!希望得到回复