簡體   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