Я пытаюсь перенести мое приложение Qt на использование набора инструментов MinGW из набора инструментов MSV C.
Приложение использует объект COM, используя директиву #import
, поддерживаемую Однако компилятор MSV C, поскольку MinGW не поддерживает это, я пытаюсь выяснить, что мне нужно сделать, чтобы добавить этот COM-объект.
Что я сделал до сих пор:
- Используйте
dumpcpp
для создания файла .h
и .cpp
для файла .tlb
- Добавьте
axcontainer
в список модулей QT в .pro
file - Добавил оба
.h
и .cpp
в мой проект Qt
Создав несколько экземпляров классов из библиотеки COM, я могу получить свой проект для компиляции, однако Кажется, есть большое количество предупреждений по следующим направлениям:
can't find linker symbol for virtual table for `ENCX::IS57Manager' value
found `guard variable for (anonymous namespace)::Q_QGS_qAccessibleFactories::innerFunction()::holder' instead
QAxBase::qt_metacall: Object is not initialized, or initialization failed
mincore\com\oleaut32\typelib\tlibapi.cpp(2279)\OLEAUT32.dll!74D65126: (caller: 74D64EC5) ReturnHr(1) tid(c7e8) 8002801D Library not registered.
Я думаю, что моя главная проблема в том, что я понятия не имею, что означает вышеизложенное.
То, что я также сделал :
- Называется
CoInitialize
, хотя я думаю, что мой QApplication
уже делает this - Включен
dll
вместе со сборкой exe
для приложения - Гарантировано, что
dll
зарегистрирован в системе с использованием regsvr32