Импорт DLL в разных версиях QT - PullRequest
0 голосов
/ 26 июня 2018

Я использовал внешний dll-файл в своем проекте и теперь обновил свою версию QT с Qt5.5.1 до 5.10.1. Теперь у меня есть проблемы с использованием DLL-файла.

  • Есть ли шанс повторно использовать ту же самую DLL в более новых версиях QT?
  • Созданы ли DLL-файлы для определенных версий QT?

Я запустил qmlplugindump.exe из двоичных файлов Qt5.5.1 и из двоичных файлов Qt5.10.1:

qmlplugindump com.IO.Plugin 1.0 C:\...\com\IO\Plugin

Qt5.5.1: [РАБОТАЕТ]

import QtQuick.tooling 1.2

// This file describes the plugin-supplied types contained in the library.
// It is used for QML tooling purposes only.
//
// This file was auto-generated by:
// 'qmlplugindump com.IO.Plugin 1.0 C:\Qt\Qt5.10.1\5.10.1\mingw53_32\qml\com\IO\Plugin'

Module {
    dependencies: []
    Component {
... }

Qt5.10.1: [НЕ РАБОТАЕТ]

QQmlComponent: Component is not ready
file:///C:/Qt/Qt5.10.1/5.10.1/mingw53_32/qml/com/IO/Plugin/qmldir: plugin cannot be loaded for module "": Cannot load library C:\Qt\Qt5.10.1\5.10.1\mingw53_32\qml\com\IO\Plugin\IOPlugin.dll: Das angegebene Modul wurde nicht gefunden.

Qt5.7.0: [НИКОГДА НЕ РАБОТАЕТ (добавлено в вопрос 27 августа 2018 года)]

This plugin does not support createPlatformOpenGLContext!
QQmlComponent: Component is not ready
file:///C:/Qt/Qt5.10.1/5.10.1/mingw53_32/qml/com/IO/Plugin/typelist.qml:2:1: plugin cannot be loaded for module "com.IO.Plugin": Cannot load library C:\Qt\Qt5.7.0\5.7\mingw53_32\qml\com\IO\Plugin\IOPlugin.dll: Das angegebene Modul wurde nicht gefunden.

Создание файла plugins.qmltypes с помощью Qt5.5.1-qmlplugindump приводит к тому, что Qt5.10.1 распознает плагин, не подчеркивая его красным и показывая QML-компонент как известный, но при компиляции проекта все равно создает следующую ошибку:

plugin cannot be loaded for module "com.IO.Plugin": Die Bibliothek C:\...\release\com\IO\Plugin\IOPlugin.dll kann nicht geladen werden: Das angegebene Modul wurde nicht gefunden. [Translated: can not be loaded: The modul can not be found]
QQmlComponent: Component is not ready
...