Я использовал внешний 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