Название: Работа с COM объектом Отправлено: Snak2013 от Апрель 21, 2017, 12:59 Доброго времени суток, есть некий COM объект из которого надо получить данные, пытаюсь сделать это так:
Код: ByteArray object("MeasurementServer.CoMeasurementServer"); Ошибок этот код не возвращает но данные тоже получить не удается переменная дата получает получает пустое значение если получать так QVariant test = MUnit->dynamicCall("Designation") то переменная "test" получает пустой вариант. К Com объекту прилагается справка в которой написано: IMeasurementServer Это базовый интерфейс для доступа к COM у меня он создается вот здесь (QAxObject* axobject = new QAxObject(object, 0);) И создается он точно правильно (я вызывал один из его методов он вернул данные правильно). Далее для работы мне нужно получить другой интерфейс который я получаю так (QAxObject* MUnit = axobject->querySubObject("MUnit(const QString&)", test);) в справке его описывают так MUnit(BSTR ID) возвращает интерфейс IMUnit. Получив интерфейс я пытаюсь получить интересующее меня свойство Designation делая я это так (QString data = MUnit->dynamicCall("Designation").toString();) в описании справки написано возвращаемый тип BSTR входных параметров нет. На VBS все получается нормально и данные возвращаются но мой код всегда возвращает пустые данные. Подскажите пожалуйста может я делаю что то не так? Название: Re: Работа с COM объектом Отправлено: ViTech от Апрель 21, 2017, 13:32 С QAxObject совсем не работал, но если необходимо обратиться к свойству, то может это надо делать через MUnit->property("Designation").toString() делать? Подробнее в QAxBase Detailed Description (http://doc.qt.io/qt-5/qaxbase.html#details) написано.
Название: Re: Работа с COM объектом Отправлено: Snak2013 от Апрель 21, 2017, 16:52 Спасибо помогло
|