crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Получение массива QAxObject* с помощью QAxObject::dynamicCall()
Алексей
  опции профиля:
сообщение 27.2.2011, 11:20
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 37
Регистрация: 29.8.2010
Пользователь №: 1988

Спасибо сказали: 0 раз(а)




Репутация:   0  


Программа SolidWorks. Согласно документации при вызове GetDocuments() мне должен быть возвращён массив COM объектов, с интерфейсом IModelDoc2 (с которыми, если работать по одиночкепроблем не возникает, например: QAxObject *activeDoc = sw->querySubObject("ActiveDoc");, кроме аналогичных проблем, с возвратом массива объектов подкомпонентов). Но при вызове dynamicCall("GetDocuments()"); мне возвращается QVariantList с 0 элементов.

пример
    QAxObject *sw = new QAxObject("SldWorks.Application", this); //Создаём
    sw->dynamicCall("Visible", TRUE); //Делаем видимым, если не видим

    int i2 = sw->dynamicCall("GetDocumentCount()").toInt(); //Количество открытых документов

    QVariant c = sw->dynamicCall("GetDocuments()");
    //режим отладки и typeName() подтверждают, что возвращён QVariantList
    QVariantList cList = c.toList();

    sw->dynamicCall("SendMsgToUser(QString)", QString::number(cList.count())+" - " + QString::number(i2));

в результате получаем сообщение 0 - 3, те в возвращённом листе 0 элементов, тjulf? как сама программа утверждает что 3

В инструкции также нащёл:
Цитата
In the .NET framework, an object array can be used for any System.Object type like integer, double, etc., for system marshaling to a VARIANT automatically. However, the use of a DispatchWrapper object is required for non-standard objects like SolidWorks interfaces, which are manipulated through the IDispatch interface.

Что я так понимаю как раз про мою ситуацию, когда возвращается массив интерфейсов от самой программы, и возможно мне нужен DispatchWrapper для qt.

Вобщем посоветуйте, каким образом разрешить ситуацию и получить массив объектов
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 4.12.2024, 0:04