Russian Qt Forum

Qt => ActiveX => Тема начата: nEoN от Сентябрь 26, 2005, 19:02



Название: Проблемы с ActiveQt
Отправлено: nEoN от Сентябрь 26, 2005, 19:02
Пытаюсь использовать COM библиотеку в своём Qt проекте. Для этих целей в Qt4-win есть утилитка dumpcpp, которая генерит Qt/c++ обёртку для библиотеки COM-объектов (type library). Но у меня она генерит не компилируемый код, ошибки разного рода, перечилять долго. При этом стандартный пример examples\activeqt\qutlook работает нормально.
Кто нибуть реально использовал ActiveQt ?


Название: Проблемы с ActiveQt
Отправлено: Admin от Сентябрь 26, 2005, 20:38
реально использовали
но в qt3
там все работало

а что не компилит в студию


Название: Проблемы с ActiveQt
Отправлено: nEoN от Сентябрь 27, 2005, 08:27
Изначально такая ошибка возникает :
Код:
c1chart2d7.cpp
c:\Projects\Qt.test\ax_test\c1chart2d7.h(9362) : error C2512: 'C1Chart2D7::Chart2D' : no appropriate default constructor available

c1chart2d7.h - это сгенерированный утилитой dumpcpp файл.
После исправления этой ошибки вручную, вылезает штук 200 других. Например :
Код:
c:\Qt\4.0.1\include\QtCore\../../src\corelib\kernel\qmetatype.h(83) : error C2512: 'C1Chart2D7::IBorder_Dual' : no appropriate default constructor available
        c:\Qt\4.0.1\include\QtCore\../../src\corelib\kernel\qmetatype.h(117) : see reference to function template instantiation 'void *qMetaTypeConstructHelper<T>(const T *)' being compiled
        with
        [
            T=C1Chart2D7::IBorder_Dual
        ]
        c:\Projects\Qt.test\ax_test\c1chart2d7.h(5338) : see reference to function template instantiation 'int qRegisterMetaType<C1Chart2D7::IBorder_Dual>(const char *,T *)' being compiled
        with
        [
            T=C1Chart2D7::IBorder_Dual
        ]

Если хочешь, могу по мылу сбросить OCX библиотеку (около 2Mb).
Вчера весь день убил на борьбу с ActiveQt  :( .


Название: Проблемы с ActiveQt
Отправлено: Admin от Сентябрь 27, 2005, 08:57
понятно

присылать не надо, надо написать trolltech в баги и ждать ответа

мне тоже скоро предстоит написать пару activex


Название: Проблемы с ActiveQt
Отправлено: nEoN от Сентябрь 27, 2005, 10:05
Отправил им bugreport. А мне пока придётся в исходниках dumpcpp ковырятся, благо они открыты.


Название: Проблемы с ActiveQt
Отправлено: Admin от Сентябрь 27, 2005, 10:56
я бы посоветовал сесть на 3.4 и на ней пока писать


Название: Проблемы с ActiveQt
Отправлено: nEoN от Сентябрь 27, 2005, 11:34
В Qt3 уже не вернуться, у меня проект на Qt4.
А ты в Qt3 как осуществлял вызов методов COM объектов, динамически через dynamicCall() ?


Название: Проблемы с ActiveQt
Отправлено: nEoN от Сентябрь 27, 2005, 15:34
В результате небольшой переписки с Trolltech мне ответили, что моя COM библиотека (type library) имеет редкую логическую структуру и что dumpcpp имеет право неадекватно реагировать на такие вещи. И порекомендовали мне для таких редких библиотек вместо ActiveQt использовать COM API или ATL  :roll:.


Название: Проблемы с ActiveQt
Отправлено: Admin от Сентябрь 27, 2005, 16:09
Цитата: "nEoN"
В Qt3 уже не вернуться, у меня проект на Qt4.
А ты в Qt3 как осуществлял вызов методов COM объектов, динамически через dynamicCall() ?


да


Название: Проблемы с ActiveQt
Отправлено: nEoN от Сентябрь 27, 2005, 16:28
Динамический способ и в Qt4 работает, просто в четвёрке появилась возможность генерировать обёртку (типы, свойства, методы) для COM библиотек, которая ещё больше упрощает работу с COM объектами.


Название: Проблемы с ActiveQt
Отправлено: Admin от Сентябрь 27, 2005, 20:55
а дергал в 3 версии fastreport
и нормально получалось


Название: Re: Проблемы с ActiveQt
Отправлено: vinnitu от Март 10, 2010, 11:36
реально использовали
но в qt3
там все работало

а что не компилит в студию

а можно поделиться исходниками\либами от activeqt для qt3?