crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> Запуск COM-объекта, переписать функцию с Delphi
mezmay
  опции профиля:
сообщение 14.12.2011, 15:42
Сообщение #1


Активный участник
***

Группа: Участник
Сообщений: 272
Регистрация: 13.7.2009
Из: Ростов-на-Дону
Пользователь №: 904

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




Репутация:   1  


Есть на Delphi код:
ModUpAPK12:=CreateOleObject('KlntAPK_12.UAPK_12');
        
ModUpAPK12.SetOpt('ÑÍÎ', 'ÑÍÎ', Form1.Handle,
                        1, Form1.Left+Form1.Width,
                        Form1.Top, 0, 1, 2, 'PC_NAME', 'SRVAPK12.UAPK12R', 235,
                        1, 1, 1);


Преписываю на Qt:

    m_apk = new QAxObject("KlntAPK_12.UAPK_12");

    QList<QVariant> vars;
    vars << QVariant::fromValue(QString::fromLocal8Bit("СНО"))
        << QVariant::fromValue(QString::fromLocal8Bit("СНО"))
        << QVariant::fromValue(winId())
        << QVariant::fromValue(int(0))
        << QVariant::fromValue(int(0))
        << QVariant::fromValue(int(0))
        << QVariant::fromValue(int(0))
        << QVariant::fromValue(int(1))
        << QVariant::fromValue(int(2))
        << QVariant::fromValue(QString::fromLocal8Bit("BERSHOV-I7"))
        << QVariant::fromValue(QString::fromLocal8Bit("SRVAPK12.UAPK12R"))
        << QVariant::fromValue(int(235))
        << QVariant::fromValue(int(1))
        << QVariant::fromValue(int(1))
        << QVariant::fromValue(int(1));
    m_apk->dynamicCall(
        "SetOpt(char *, char *, HWND, int, int, int, int, int, int, char *, char *, int, int, int, int)",
        vars);


Ругается на winId():
Цитата
Error 1 error C2039: 'qt_metatype_id' : is not a member of 'QMetaTypeId<T>' c:\qt\4.6.3\src\corelib\kernel\qmetatype.h 200


Исходников самого COM-объекта нету, задача переписать с Delphi на С++ по той информации что есть...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
mezmay
  опции профиля:
сообщение 15.12.2011, 11:36
Сообщение #2


Активный участник
***

Группа: Участник
Сообщений: 272
Регистрация: 13.7.2009
Из: Ростов-на-Дону
Пользователь №: 904

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




Репутация:   1  


короче вопрос сводится к следующему: как вызвать функцию СОМ объекта с параметром HWND?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
BRE
  опции профиля:
сообщение 15.12.2011, 12:43
Сообщение #3


Профессионал
*****

Группа: Участник
Сообщений: 1112
Регистрация: 6.3.2009
Из: Ростов-на-Дону
Пользователь №: 591

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




Репутация:   44  


m_apk = new QAxObject("KlntAPK_12.UAPK_12");
QString docContent = m_apk->generateDocumentation();

Сохрани docContent в файл и увидишь как Qt предлагает вызывать этот метод.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
mezmay
  опции профиля:
сообщение 15.12.2011, 18:39
Сообщение #4


Активный участник
***

Группа: Участник
Сообщений: 272
Регистрация: 13.7.2009
Из: Ростов-на-Дону
Пользователь №: 904

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




Репутация:   1  


Решил вопрос с помощью генерации класса с помощью dumpcpp
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 27.5.2024, 7:26