C++ C++;使用Qt4插件开发

C++ C++;使用Qt4插件开发,c++,plugins,interface,qt4,C++,Plugins,Interface,Qt4,最近我一直在玩Qt4框架提供的插件框架,它工作得非常好。然而,有一件事我不确定 在所有示例中,实现的接口(实际插件)都有其源代码(实现接口的人可以访问接口源)。这不是问题,但我真正想做的是通过共享库或类似的东西公开接口 我的目标是只为第三方开发人员提供一个共享库文件,然后他们可以在代码中“导入”(不使用Java术语)该文件,为应用程序创建插件。类似于在Java中提供一个.jar文件,然后开发人员可以导入该文件 这背后的原因不是为了隐藏源代码,因为它是一个开源项目,而是为了简单起见。此外,该程序非

最近我一直在玩Qt4框架提供的插件框架,它工作得非常好。然而,有一件事我不确定

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

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

这背后的原因不是为了隐藏源代码,因为它是一个开源项目,而是为了简单起见。此外,该程序非常依赖于接口,因此来自不同第三方的插件可以相互通信。如果它们弄乱了实际的接口,它就会崩溃

我希望你能朝着正确的方向轻推我


谢谢

C++不允许像Java那样进行内省,因此您不能仅仅发布“二进制文件”并从中推断接口。在C++中,需要对接口(头文件)进行文本描述。 想要为您的应用程序开发插件的人需要访问

  • 插件接口的头文件
  • 插件接口中使用的类的所有头文件

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

    是的,我也是这么想的。不过,发送头文件是可以的。比强迫他们将所有源代码导入到项目等更干净。谢谢!