Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. International
  3. Chinese
  4. QAxBase 遇到VARIANT*参数的问题
Forum Updated to NodeBB v4.3 + New Features

QAxBase 遇到VARIANT*参数的问题

Scheduled Pinned Locked Moved Unsolved Chinese
2 Posts 2 Posters 921 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • L Offline
    L Offline
    liaoque
    wrote on last edited by
    #1

    我使用dynamicCall调用com中的函数,函数有VARIANT* 作为函数参数,
    传参 我尝试了 使用 QVariant& , const QVariant& , const QList<QVariant>& , QList<QVariant>&, const QStringList& , QStringList& , QAxObject* 都得到错误的参数传递。错误如下:
    QAxBase: Error calling IDispatch member GetAll: Type mismatch in parameter 0

    我的qt代码:
    QList<QVariant> PropNames_f,PropTypes_f,PropValues_f;
    array_f = customProperty->dynamicCall("GetAll(QVariant&,QVariant&,QVariant&)",PropNames_f,PropTypes_f,PropValues_f);

    GetAll在com中的原型:
    virtual HRESULT __stdcall GetAll (
    /[in,out]/ VARIANT * PropNames,
    /[in,out]/ VARIANT * PropTypes,
    /[in,out]/ VARIANT * PropValues,
    /[out,retval]/ long * NumProps ) = 0;

    qt对 com类型的部分映射关系(qt帮助提取):
    COM type Qt property in-parameter out-parameter

    BSTR QString const QString& QString&
    SAFEARRAY(VARIANT) QList<QVariant> const QList<QVariant>& QList<QVariant>&
    SAFEARRAY(BYTE) QByteArray const QByteArray& QByteArray&
    SAFEARRAY(BSTR) QStringList const QStringList& QStringList&
    VARIANT type-dependent const QVariant& QVariant&
    IDispatch* QAxObject* QAxBase::asVariant() QAxObject* (return value)
    IUnknown* QAxObject* QAxBase::asVariant() QAxObject* (return value)
    SCODE, DECIMAL unsupported unsupported unsupported
    VARIANT* (Since Qt 4.5) unsupported QVariant& QVariant&

    请求帮忙解决。
    谢谢!

    1 Reply Last reply
    0
    • Z Offline
      Z Offline
      zielona
      wrote on last edited by
      #2

      请问楼主解决了吗,我在开发中也遇到这个问题了。QVariant不支持传入数组,我参考的其它语言调用函数都是VARIANT传入float数组。

      1 Reply Last reply
      0

      • Login

      • Login or register to search.
      • First post
        Last post
      0
      • Categories
      • Recent
      • Tags
      • Popular
      • Users
      • Groups
      • Search
      • Get Qt Extensions
      • Unsolved