<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          X3CC++輕量級通用插件框架平臺

          聯(lián)合創(chuàng)作 · 2023-10-01 02:13

          X3 C++ PluginFramework 代號為X3的C++輕量級通用插件框架平臺是一套通用的C++輕量級插件體系,沒有使用MFC、ATL、COM??稍赪indows和Linux下編譯運(yùn)行。應(yīng)用程序可以基于X3插件框架進(jìn)行快速開發(fā),X3插件框架中的插件既可以單獨(dú)使用,又可以靈活組合使用。X3插件框架已經(jīng)過3年十幾個系統(tǒng)的實際使用驗證。

          目前X3插件框架包括插件內(nèi)核部分(插件基礎(chǔ)、插件管理器、Observer管理器插件、日志管理器插件)和實用技術(shù)插件(XML讀寫封裝插件、數(shù)據(jù)庫操作封裝插件、文件操作實用插件、文本操作實用插件、本地化字符串表插件等)。

          Windows/Linux編譯運(yùn)行環(huán)境
          本插件機(jī)制采用C++實現(xiàn),用到了C++的RTTI機(jī)制和少量Windows API函數(shù),沒有使用MFC、ATL、STL,沒有使用LIB文件,外部依賴文件少,沒有使用VC++特殊編譯指令。

          編譯環(huán)境為

          1、Visual C++ 6.0/2003/2005/2008/2010,Windows

          2、MinGW GCC + Code::Blocks(IDE),Windows

          3、Linux GCC + Code::Blocks(IDE),Windows

          4、Linux GCC + Makefile

           

          X3插件框架的特點有:

          a) 接口定義簡單靈活
          采用普通的C++接口,即由純虛函數(shù)組成的結(jié)構(gòu)體,不需要特殊的基類,不需要宏和UUID申明;同時可以使用C++的各種變量類型,不受COM接口那樣的約束。例如下面的接口Ix_定義:

          interface Ix_Example
          {
               virtual void Foo() = 0; 
               virtual void* GetData(std::vector& items) = 0; 
          };

          b) 接口與實現(xiàn)分離
          對外提供接口文件,在插件內(nèi)部用類來實現(xiàn)一個或多個接口,不需要對外導(dǎo)出該類或暴露實現(xiàn)細(xì)節(jié)。這樣還有一個好處是只有約定了接口就可以讓多個模塊并行開發(fā),模塊相互之間不存在編譯依賴(不需要其他插件的LIB等文件),這可用于測試驅(qū)動開發(fā)模式。

          c) 多接口轉(zhuǎn)換、引用計數(shù)管理
          采用智能指針類來管理接口的引用計數(shù)及生命期,可從一個接口動態(tài)轉(zhuǎn)換為另一個接口(內(nèi)部采用C++的RTTI機(jī)制動態(tài)轉(zhuǎn)換),可以區(qū)分插件內(nèi)部的接口引用和插件外部的接口引用。

          d) 模塊透明部署
          一個模塊只需要使用其他模塊的接口,不需要關(guān)心該接口是在哪個插件中實現(xiàn)的。可以根據(jù)需要將各個實現(xiàn)類進(jìn)行合并或拆分,使其分布到不同插件中,而接口使用者不受影響。另外,插件部署于哪個目錄也不影響插件接口的使用。

          e) 模塊可替換、可擴(kuò)展
          可根據(jù)需要替換某個插件,只有該插件實現(xiàn)了相同的接口,即使內(nèi)部功能不相同,這樣就實現(xiàn)了插件可替換、按需組合。通過在新的插件中支持更多的接口,可擴(kuò)展更多的功能。可以在新插件中局部替換原有插件的某些接口或部分函數(shù),實現(xiàn)重用和擴(kuò)展。

          f) 線程安全性
          本插件機(jī)制所提供的內(nèi)部實現(xiàn)文件考慮了線程安全性,允許多線程訪問而不沖突,同時采用的是輕量級的鎖定機(jī)制(計數(shù)原子鎖定),運(yùn)行開銷很小。

          g) 跨版本
          允許不同版本的VC++開發(fā)的插件相互調(diào)用對方的接口,雖然實際中一般不需要這樣做。由于沒有采用VC++特殊的編譯指令,因此容易移植到其他開發(fā)平臺下。

          瀏覽 7
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  四虎免费看黄 | 国产视频1 | www.我爱草逼 | 97超碰在线免费 | 人妻无码日韩 |