Russian Qt Forum

Qt => ActiveX => Тема начата: wolf40000 от Август 09, 2015, 20:50



Название: dynamicCall parameters
Отправлено: wolf40000 от Август 09, 2015, 20:50
Кто может объяснить нубу как работать с вот этим?
Код:
void GetVaultViews (QList*& ppoRetViews, bool bOnlyLoggedIn) [slot]
Пример из документации просто исчерпующий  >:(
Код:
QVariantList params = ...
object->dynamicCall("GetVaultViews(QList*&, bool)", params);


Название: Re: dynamicCall parameters
Отправлено: gil9red от Август 09, 2015, 22:37
Тут побольше вариантов, и другое http://doc.qt.io/qt-4.8/qaxbase.html#details

А так, что вы хотите знать? Насколько я вижу, тут вызывается функция какого activex объекта и в нее передаются 2 параметра, которые заполняются в QVariant списке


Название: Re: dynamicCall parameters
Отправлено: wolf40000 от Август 10, 2015, 10:40
Код:
QList*&
Как мне понимать этот тип? Когда QList является шаблоном. И как тогда заполнить:
Код:
QVariantList params = ...


Название: Re: dynamicCall parameters
Отправлено: wolf40000 от Август 10, 2015, 10:44
Дело еще и в том что dumpcpp сгенерировал такой код что в
Код:
void GetVaultViews (QList*& ppoRetViews, bool bOnlyLoggedIn) [slot]
нужно передавать указатель на
Код:
QList<EdmViewsInfo>*
где EdmViewsInfo является структурой без тела, в .h только
Код:
struct EdmViewsInfo;
И в ответ на вызов функции я получаю
Код:
QAxBase: Error calling IDispatch member GetVaultViews: Type mismatch in parameter 0


Название: Re: dynamicCall parameters
Отправлено: wolf40000 от Август 10, 2015, 10:45
И да, этот код сгенерирован из SolidWorks EPDM (Edm.tlb).