У меня есть проблемы с распространением моего класса QT (5.7, msvc) другому разработчику (он использует построитель Borland C++). Во время загрузки мое приложение dll не может найти platforms\qwindows.dll
Кто-нибудь может сказать мне (с примерами), как создать dll и использовать ее в других компиляторах?
Это мой способ экспортировать некоторые методы класса:
#include <string>
#include <QString>
#include "dialog.h"
dialog* dlg;
extern "C" __declspec(dllexport) void DLLInit() {
int argcc = 0;
new QApplication(argcc, 0, false);
dlg = new dialog();
}
extern "C" __declspec(dllexport) void DLLDestroy() {
delete dlg;
delete qApp;
}
extern "C" __declspec(dllexport) void setText(std::wstring str){
dlg->setText(QString::fromWCharArray(str.c_str()));
}
extern "C" __declspec(dllexport) int add(int a, int b){
return dlg->add(a, b);
}
Файловая структура кажется правильной (qt_form - моя dll):





Если EXE не находится в той же папке, что и библиотеки Qt, пусть EXE вызовет SetDllDirectory с путем к папке, содержащей ваши DLL и библиотеки DLL Qt.
Или измените переменную среды PATH, чтобы включить эту папку.
Почему вы создаете объект приложения в библиотеке?