【问题标题】:Qt - Using 3rd party DLLs in my applicationQt - 在我的应用程序中使用第 3 方 DLL
【发布时间】:2011-06-20 12:05:10
【问题描述】:

我整个上午都在试图得到一个明确的答案,但我运气不佳 - 也许我的速度很慢,因为我以前没有使用过这个功能。

我有一个 .dll 文件和一个对应的同名 .lib 文件。我想在我的 Qt 应用程序中使用其中的一些功能。我有一个库中可用的函数列表,我还有一个这些函数的 C++ 原型列表(这些是使用 extern "C" 编写的)。

根据我今天的理解(可能是错误的),我可以在运行时加载库并尝试解析我需要的函数,或者我可以在编译时加载库,确保在我的中包含 C++ 原型标题。

现在,我的第一个问题是我对这两件事的看法是否正确?

如果我是,有没有首选的方法?

如果我错了 - 任何人都可以在正确的方向轻轻推我一下吗?

谢谢

【问题讨论】:

  • 这是在 Visual Studio 下还是 mingw 下?他们处理 dll 的方式不同。
  • 你试过QLibrary类来管理DLL吗?
  • @hexa 是的,感谢您的提示-我正在查看它-它似乎用于动态加载。我现在正在尝试将其静态编译,但如果我迷路了,我会查看 QLibrary。
  • 动态加载很好,因为例如如果缺少 dll,您仍然可以启动程序并更好地控制错误消息等。

标签: qt dll dllimport


【解决方案1】:

也许您需要静态链接 .lib,将 dll 与您的程序一起部署,包含函数原型并只使用函数? 通常会提供静态 .lib,因此您不必做“肮脏”的工作——它们会为您加载动态库和导出函数。比如Qt通常就是这样使用的。

【讨论】:

  • 干杯 - 我通常得出这个结论,并且现在正在尝试实现这一点。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-10
  • 1970-01-01
  • 2011-02-16
相关资源
最近更新 更多