在 Qt 中从 dll 创建 WinForm

Posted

技术标签:

【中文标题】在 Qt 中从 dll 创建 WinForm【英文标题】:Create WinForm from dll in Qt 【发布时间】:2016-02-09 20:55:59 【问题描述】:

我将项目 Windows 窗体构建为 DLL。我需要在 Qt Form 中单击按钮后显示 WinForm。

我已经尝试使用 UI Helper 添加 lib,但它不起作用,我已经运行了以下代码:

#include <QCoreApplication>
#include <QProcess>

int main(int argc, char *argv[])

   QCoreApplication a(argc, argv);

   QProcess::execute("rundll32", QStringList("Test_dll_lib.DLL,MyForm"));

   return a.exec();

但我不知道我必须准确地将什么作为参数。

【问题讨论】:

【参考方案1】:

为什么你认为它应该起作用?您是否以某种特殊方式构建了该表单?

我想说,QLibrary 可能更有用:您加载库,导入正确的函数(构建窗口/表单),然后调用它。

顺便问一下,你确定它是一种 win32 dll 类型,而不是来自 .NET 的那种吗? WinForms 是一种.NET 技术(我很确定),不是吗?如果是这样,您将永远不会从 Qt 加载它,就像 it's not binary compatible 使用常规 win32 应用程序一样。

【讨论】:

以上是关于在 Qt 中从 dll 创建 WinForm的主要内容,如果未能解决你的问题,请参考以下文章

如何在qt中从右侧创建导航抽屉

如何在 C#/Python 中从 DLL 调用函数

如何在 Java 中从 C DLL 加载和使用结构和函数?

在 C# 中从 C++ .DLL 加载值始终返回 true

在 C/C++ (Win64) 中从内存中加载 64 位 DLL

Qt DLL总结-创建及调用QT的 DLL(三篇)good