Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt Ввод/Вывод, Сеть. Межпроцессное взаимодействие _ Запуск COM-объекта

Автор: mezmay 14.12.2011, 15:42

Есть на 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

короче вопрос сводится к следующему: как вызвать функцию СОМ объекта с параметром HWND?

Автор: BRE 15.12.2011, 12:43

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

Сохрани docContent в файл и увидишь как Qt предлагает вызывать этот метод.

Автор: mezmay 15.12.2011, 18:39

Решил вопрос с помощью генерации класса с помощью dumpcpp

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)