繁体   English   中英

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

[英]plug-in architecture based c/c++ application

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

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

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

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

另外,另一个好样本是Miranda IM

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

你应该 :

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

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

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

你可以在应用程序中定义外部应用程序可以与之通信的接入点吗?

假设您定义了一些命名管道机制或TCP / IP套接字,外部应用程序将调用此API来操作您的应用程序?

鉴于您需要在允许它们使用您的应用程序之前在核心应用程序中注册这些插件。 您甚至可以添加公共私有证书来验证此插件的来源,(即使用私钥对插件进行签名,其中应用程序的实例将根据公钥进行验证)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM