<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 手機與無線通信 > 設(shè)計應(yīng)用 > 基于COM的輕量級組件技術(shù)的簡單實現(xiàn)

          基于COM的輕量級組件技術(shù)的簡單實現(xiàn)

          作者: 時間:2010-09-01 來源:網(wǎng)絡(luò) 收藏

          2.1 管理的功能

          Com庫中可維護兩個鏈表,分別用于存放插件DLL的信息和接口信息。

          每次使用Com庫加載的DLL信息都將記錄到插件鏈表中。在為用戶創(chuàng)建接口前,還需要查詢插件鏈表,以判斷該插件是否已經(jīng)被加載,如已加載,便可直接使用,不需要重新加載,這樣可以節(jié)省系統(tǒng)開銷。由于在應(yīng)用中加載的插件數(shù)目有限,因此,查詢鏈表花費的時間代價可以忽略,圖4所示為存放插件信息的結(jié)構(gòu)。其中CLASS_TABLE結(jié)構(gòu)存放插件DLL的信息。接口鏈表可用來保存成功返回給用戶的插件接口。用戶申請接口時,Com庫先在接口鏈表中查找該接口,如果已經(jīng)存在,則直接返回,這樣可以節(jié)省創(chuàng)建接口的時間,也可以有效地控制接口對象的數(shù)目。

          圖5所示是CIMPL結(jié)構(gòu)用于存放插件接口的信息。

          釋放這兩個鏈表的過程就是釋放資源的過程。在標準中,資源管理是通過一個由接口自己負責的資源計數(shù)器完成的。在中,根據(jù)應(yīng)用需要,每個接口只需要一個接口指針,而不需要資源計數(shù)器,釋放資源的任務(wù)由Com庫完成。當應(yīng)用程序關(guān)閉時,可將兩個資源鏈表中的接口對象刪除,并將組件DLL/SO卸載。

          2.2 創(chuàng)建插件接口指針

          Com庫的核心功能就是創(chuàng)建組件接口指針。

          創(chuàng)建組件接口指針的函數(shù)為CoCreateInstance,它具有圖6所示的三個參數(shù)。其創(chuàng)建過程如圖7所示。



          2.3 ExtensionSystem靜態(tài)庫

          ExtensionSystem靜態(tài)庫中已加載了Com庫,并將Com庫的創(chuàng)建接口指針函數(shù)封裝成接口。這樣,客戶端在使用時,就不需要關(guān)注Com庫的具體位置,而可以直接調(diào)用ExtensionSystem的接口來獲取插件接口指針。



          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();