【发布时间】:2013-06-20 19:52:25
【问题描述】:
我开发了一个具有 Qt 共享库和 Qt 应用程序的应用程序。 Qt 共享库导出单个类,其中的信号很少。我为此使用了 Q_DECL_EXPORT / Q_DECL_IMPORT 宏。目前dll与应用程序之间的通信是通过Qt信号和插槽进行的,需要使用QObject来开发应用程序。
现在我被要求将 Qt 共享库作为一个理想的 DLL,其中客户端应用程序不依赖于 Qt 框架。
我看到了以下帖子,但 Using a Qt-based DLL in a non-Qt application 但不确定这是否是最好的方法。
请有人告诉我开发 Qt 共享库以用于非 Qt 应用程序的可能选项。
【问题讨论】:
-
听起来您要创建一个在幕后使用 Qt 的 API 接口。根据我的经验,您必须小心不要在任何头文件中包含与 Qt 相关的项目,这些头文件将被您的 DLL 的最终用户使用。因此,您必须小心地进行所有前向声明,并主要在 .cpp 文件中包含标头。
-
Huytard - 感谢您的指点。听起来是个好方法。将 Qt 功能限制在库中,并导出一些非 Qt 函数供应用程序接口。
标签: windows qt dll shared-libraries