C++ 与 Qt4 插件开发

标签 c++ plugins interface qt4

最近一直在玩Qt4 Framework提供的插件框架,效果很好。然而,有一件事我不确定。

在所有示例中,实现的接口(interface)(实际插件)都有可用的源代码(实现接口(interface)的人可以访问接口(interface)源代码)。这不是问题,但我真正想做的是通过共享库或类似的东西公开接口(interface)。

我的目标是只给第 3 方开发人员一个共享库文件,然后他们可以在他们的代码中“导入”(请原谅 Java 术语)来为应用程序创建插件。类似于在 Java 中提供一个 .jar 文件,然后开发人员可以将其导入。

这背后的原因不是隐藏源代码,因为它是一个开源项目,而是为了简单起见。此外,该程序非常依赖于保持原样的接口(interface),以便来自不同第 3 方的插件可以相互通信。如果它们与实际界面混淆,它就会分崩离析。

我将不胜感激任何朝着正确方向的插入。

谢谢!

最佳答案

C++ 不像 Java 那样允许自省(introspection),因此您不能只发布“二进制文件”并从中推断接口(interface)。在 C++ 中,您需要接口(interface)的文本描述(头文件)。

想要为您的应用程序开发插件的人需要访问

  1. 插件接口(interface)头文件
  2. 插件接口(interface)中使用的类的所有头文件。

由于您在帖子中提供的原因,插件开发人员通常不会弄乱提供的头文件(至少他们不应该这样做)。

关于C++ 与 Qt4 插件开发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4321844/

相关文章:

c++ - 为什么 CHAR_BIT 通常是 8?

android - Cordova Javascript QR 扫描仪插件无法在 Android 上运行 (cordova-plugin-qrscanner)

c# - 根据接口(interface)字符串名称实例化类

wordpress - 为 Super Socializer 社交登录添加过滤器

javascript - 在 z 轴(z 索引)中绕另一个元素旋转

interface - 公开 Protocol Buffer 接口(interface)

java - 关于接口(interface)引用变量的问题

c++ - 如何修复堆损坏

c++ - 在 OpenCV 上组织 channel

c++ - 碱基转换问题