1

我在 Visual Studio 中创建了一个 DLL。它适用于 Peak USB 到 CAN 设备。此 DLL 由供应商提供。

现在我想在 Qt GUI 中使用这个 DLL。我正在使用 Qt 的默认编译器来编译 Qt GUI 应用程序。

是否可以直接在 Qt 应用程序中使用在 Visual Studio 中创建的这个 DLL?

对此的确切程序是什么?我是第一次做所以请建议。

gui & dll 是否必须使用相同的编译器编译才能正确使用?

编辑:
我如何确认我已经安装了什么..意味着我的 PC 上 QT 使用什么编译器?我已经使用以下offline安装程序QtSdk-offline-win-x86-v1_2_1.exe进行了安装,它是特定于 MSVC 的吗?

4

3 回答 3

2

对于“Qt 的默认编译器”,您可能是指 mingw。

使用 MSVC 编译的 DLL 将不起作用。使用 MingW 和 MSVC 从 C++ 编译的 DLL 相互之间是 ABI 不兼容的,即不能混合(尽管普通 C 库可以工作)。

我建议下载 Qt for MSVC 并使用它。

于 2013-07-24T15:48:21.560 回答
0

是的,这是可能的,我以前做过。我假设您正在谈论一个 Win32 DLL,可能是用 C 编写的。使用 C 以外的任何语言都可能很棘手。

我不记得确切的程序,但这里是大纲:

  1. 将您的 QT 应用程序配置为链接到 DLL 的 .lib(导入库二进制文件)。我认为您需要编辑主 QMake 配置文件。
  2. 在您的 Qt 应用程序中为 DLL 的头 (.h) 文件添加一个包含。
  3. 添加一个 Qt post-build 步骤以将该 DLL 复制到您的应用程序目录,以便可以在运行时找到并加载它。
于 2013-07-24T15:20:57.910 回答
0

使用QLibrary. 我试过Qt()来调用DLL(FORTRAN)。它运作良好。希望它可以帮助

于 2013-07-25T10:38:33.123 回答