Qt控制中控考勤SDK

读取所用用户信息的代码:

    QVariant dwMachineNumber(1);
    QVariant dwEnrollNumber("");
    QVariant Name("");
    QVariant Password("");
    QVariant Privilege(0);
    QVariant Enabled(false);

    QList<QVariant> inplist;

    inplist << dwMachineNumber << dwEnrollNumber << Name << Password  << Privilege << Enabled ; //要获取组件执行后传人参数的值  需将参数放入QList<QVariant>

    QAxObject *zk = new QAxObject(this);
    zk->setControl("zkemkeeper.ZKEM.1");//连接中控控件
    QVariant connStatus=zk->dynamicCall("Connect_Net(string, int)","192.168.10.242",4370); //连接考勤机
    if(connStatus.toBool()){
        connStatus = zk->dynamicCall("ReadAllUserID(int)",1);  //读取用户信息



        QVariant readed = zk->dynamicCall("SSR_GetAllUserInfo(long, QString&, QString&, QString&, int&, bool&)",inplist);

        while(readed.toBool()){
            readed = zk->dynamicCall("SSR_GetAllUserInfo(long, QString&,QString&, QString&, int&, bool&)",inplist);
            qDebug() << "inplist=" << inplist;
        }



        zk->dynamicCall("Disconnect()"); //关闭连接

    }


    qDebug() << "connStatus:" << connStatus;

    delete zk;
    zk=NULL;

要点:在Qt中用 dynamicCall 调用COM组件函数 ,COM组件函数的参数为指针变量时 ,若想获取COM组件函数执行后传人的指针参数的值,需将参数保存在一个 QList<QVariant> 中后传入,例如COM组件中的SSR_GetAllUserInfo函数的定义为:

VARIANT_BOOL SSR_GetAllUserInfo( [in]  LONG dwMachineNumber, [out] BSTR* dwEnrollNumber, [out] BSTR* Name, [out] BSTR* Password, [out] LONG* Privilege,  [out]  VARIANT_BOOL* Enabled)

想要在Qt中获取:

dwMachineNumber
机器号
dwEnrollNumber
用户号
Name
用户姓名
Password
用户密码
Privilege
用户权限,3 为管理员,0 为普通用户
Enabled
用户启用标志,1 为启用,0 为禁用

则实现方式需写成上面的形式。

转载于:https://my.oschina.net/jaakan/blog/824287

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值