基于插件架构的c/c ++应用程序

sep*_*oad 8 c++ architecture linux plugins add-in

我需要知道如何开始编写基于插件架构的应用程序.我的意思是如何编写基本代码,让其他人通过添加他们编写的插件来开发应用程序.我知道在c ++中这样做有一些问题.大多数人使用python之类的其他语言将插件添加到他们的c ++应用程序中.

Emm*_*dec 5

你应该 :

  • 定义一个接口
  • 加载你的插件并给它这个界面

您的插件将能够通过此接口与主机应用程序进行通信。这意味着,您必须仔细考虑您希望插件执行的操作。

如果您的主机应用程序发生变化并且添加了功能,您可能需要支持各种版本的接口。


Cos*_*ert 4

我认为,这不是您期望的答案,但您可以尝试检查Rainmeter来源。它是用 C++ 编写的(在我看来,有些地方可以做得更好,但总的来说还可以),整个应用程序都是这样完成的,所以它只处理插件。

即使简单的 API 也是通过插件完成的,我的意思是,还有一堆贡献插件的示例,是由其他人编写的(有一天我也这样做了)。

我认为您实际上可以通过查看其他应用程序来研究基于插件的开发中的许多新技巧。

另外值得一提的是,另一个很好的例子是Miranda IM

编辑:此外,如果我执行相同的任务,我实际上会python向我的应用程序添加一些(或类似的东西)后端,并将其用作 SDK 的语言(例如,使用boost::python)。