求帮助:C++与lua绑定的问题

现像:

在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(tolua_S, 2, “UpdateInfo”,&arg0, “UpdateService:Start”);
这段代码中,ok的值始终都是false,,因此会提示错误,请问这个是什么原因造成的,如果解决?

还补充一下:
如果在把lua中函数做为一个参数与C++绑定起来,也会出错,请问应如何处理!
使用C++自定义的类型做参数重发成的绑定文件,在lua中我可以正常使用!
谢谢

lua调用的错误代码呢