Доброго времени суток, есть некий COM объект из которого надо получить данные, пытаюсь сделать это так:
ByteArray object("MeasurementServer.CoMeasurementServer");
QAxObject* axobject = new QAxObject(object, 0);
if(!axobject->isNull())
{
const QString test = "VD53586643AE74C38A1BDF03D34991850";
QAxObject* MUnit = axobject->querySubObject("MUnit(const QString&)", test);
if(!MUnit->isNull())
{
QString data = MUnit->dynamicCall("Designation").toString();
}
Ошибок этот код не возвращает но данные тоже получить не удается переменная дата получает получает пустое значение если получать так 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 все получается нормально и данные возвращаются но мой код всегда возвращает пустые данные.
Подскажите пожалуйста может я делаю что то не так?