非Qt应用程序中的QT dll

时间:2018-07-05 00:31:57

标签: c++ qt

我在将我的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):

The file structure seems correct:

1 个答案:

答案 0 :(得分:0)

如果EXE与Qt库不在同一个文件夹中,请使用包含DLL和Qt DLL的文件夹路径进行EXE调用SetDllDirectory

或修改PATH环境变量以包含此文件夹。