最近一直在玩Qt4 Framework提供的插件框架,效果很好。然而,有一件事我不确定。
在所有示例中,实现的接口(interface)(实际插件)都有可用的源代码(实现接口(interface)的人可以访问接口(interface)源代码)。这不是问题,但我真正想做的是通过共享库或类似的东西公开接口(interface)。
我的目标是只给第 3 方开发人员一个共享库文件,然后他们可以在他们的代码中“导入”(请原谅 Java 术语)来为应用程序创建插件。类似于在 Java 中提供一个 .jar
文件,然后开发人员可以将其导入。
这背后的原因不是隐藏源代码,因为它是一个开源项目,而是为了简单起见。此外,该程序非常依赖于保持原样的接口(interface),以便来自不同第 3 方的插件可以相互通信。如果它们与实际界面混淆,它就会分崩离析。
我将不胜感激任何朝着正确方向的插入。
谢谢!
最佳答案
C++ 不像 Java 那样允许自省(introspection),因此您不能只发布“二进制文件”并从中推断接口(interface)。在 C++ 中,您需要接口(interface)的文本描述(头文件)。
想要为您的应用程序开发插件的人需要访问
- 插件接口(interface)头文件
- 插件接口(interface)中使用的类的所有头文件。
由于您在帖子中提供的原因,插件开发人员通常不会弄乱提供的头文件(至少他们不应该这样做)。
关于C++ 与 Qt4 插件开发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4321844/