999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

軟件插件技術及其應用研究

2007-08-25 01:30:42于珊珊
智能計算機與應用 2007年4期
關鍵詞:程序功能

于珊珊

摘要:討論了插件技術的原理、插件的管理、插件的實現方案,在此基礎上研究了插件技術在數據庫開發過程中的應用。

關鍵詞:插件接口數據庫系統開發

1插件技術的原理

1.1動態鏈接庫(Dynamic Link Li-brary)

它本身不能獨立運行,但它能輸出函數或類,通過其它能獨立運行的程序(宿主程序)可以調用它內部的功能。動態鏈接庫有兩種調用方式:

(1)靜態調用方式:由編譯系統完成對DLL的加載和應用程序結束時DLL卸載的編碼。

隱式的調用:需要把產生動態連接庫時產生的,LIB文件加入到應用程序的工程中,想使用DLL中的函數時,只須說明一下。隱式調用不需要調用LoadLibrary()和FreeIAbrary()。程序員在建立一個DLL文件時,鏈接程序會自動生成一個與之對應的LIB導入文件。該文件包含每一個DLL導出函數的符號名和可選的標識號,但是并不含有實際的代碼。LIB文件作為DLL的替代文件被編譯到應用程序項目中。當程序員通過靜態鏈接方式編譯生成應用程序時,應用程序中的調用函數與LIB文件中導出符號相匹配,這些符號或標識號進入到生成的EXE文件中。LIB文件中也包含了對應的DLL文件名(但不是完全的路徑名),鏈接程序將其存儲在EXE文件內部。

當應用程序運行過程中需要加載DLL文件時,Windows根據這些信息發現并加載DLL,然后通過符號名或標識號實現對DLL函數的動態鏈接。所有被應用程序調用的DLL文件都會在應用程序EXE文件加載時被加載到內存中。可執行程序鏈接到一個包含DLL輸出函數信息的輸入庫文件(.LIB文件)。操作系統在加載使用可執行程序時加載DLL。可執行程序直接通過函數名調用DLL的輸出函數,調用方法和程序內部其他函數一樣。

(2)動態調用方式:由編程者用API函數加載和卸載DLL調用DLL,使用較復雜,但能更有效地使用內存,是編制大型應用程序的重要方式。

顯式的調用:是指在應用程序中用I.oadLibrary或MFC提供的AfxLoadLibrary顯式的將自己所做的動態連接庫調進來,動態連接庫的文件名即是上面兩個函數的參數,再用GetProcAddress()獲取想要引入的函數。自此,你就可以象使用如同本應用程序自定義的函數一樣來調用此引入函數了。在應用程序退出之前,應該用FreeLibrary或MFC提供的MxFreeLi-brary釋放動態連接庫。直接調用Win32的LoadLibary函數,并指定DLL的路徑作為參數。LoadLibary返回HINSTANCE參數,應用程序調用GetProcAddress函數時使用這一參數。C,etProcAddress函數將符號名或標識號轉換為DLL內部的地址。程序員可決定DLL文件何時加載或不加載,顯式鏈接在運行時決定加載哪個DLL文件。使用DLL的程序在使用之前必加載(LoadLibrary)DLL,得到一個DLL模塊的句柄,然后調用GetPro-cAddress函數得到輸出函數指針,在退出之前必卸載(FreeLibrary)DLL。

1.2接口。宿主程序與插件只能通過制訂好的接口進行通信。軟件開發中,接口只是定義功能并規定調用功能的形式,而不包含功能的實現。接口實質上是軟件模塊的調用規范。就開發支持插件功能的應用程序而言,一般來說由宿主程序的開發者來制訂接口,如果希望其他的開發人員能開發相關的插件,只要公開相關的接口即可。接口功能一般由插件方實現。因為插件的實現也許要調用宿主程序的功能,所以接口功能也可能由宿主程序來實現。也就是說,宿主程序與插件的信息流可能是雙向的。接口的調用規范與功能實現相互分離有一個很大的優點:盡管不同的插件開發者對同一個接口的具體實現不同,但是在宿主程序中對這些插件的調用方式是一樣的。如果有宿主程序實現的接口,在不同的插件中也可以用相同的使用方式調用宿主程序的功能。這極大地提高了應用程序的靈活性。

1.3開發支持插件功能應用程序的解決方案。(在動態鏈接庫中實現插件接口,在宿主程序中運用顯式鏈接方式動態加載插件。支持插件功能的應用程序的結構如圖1所示。在宿主程序中,插件管理部分用于管理插件的安裝和刪除,并將所安裝插件的信息保存到適合的地方,例如保存到注冊表或配置文件中。宿主程序啟動時,根據插件的配置信息加載插件模塊,然后獲得插件的輸出函數或輸出類的指針并加以保存,如果需要的話,可以向宿主程序增加界面接口元素,如菜單、工具條按鈕等。在宿主程序中當點擊與插件相關聯的接口元素(如菜單等)時,就會觸發插件調用函數,在插件調用函數中使用宿主程序中所保存的插件信息調用插件中實現的功能。在調用插件輸出函數時也可以把宿主程序中實現的接口傳遞給插件方。

2插件管理

主程序必須為支持插件提供插件管理功能,它調用了插件提供的接口,其具體實現實際上是由插件本身完成的。插件管理主要提供以下幾個方面的功能:(1)注冊、反注冊插件。(2)啟用、禁用插件。(3)顯示插件基本信息。(4)配置插件參數。

3插件的實現方案

對于插件的實現,有動態鏈接庫(DLL)、COM組件兩種方案,目前的系統中,采用動態鏈接庫(DLL)方案。(1)DLL是在Windows系統中實現軟件組件重要的方法,在動態鏈接庫(DLL)中,集中實現插件,只需用戶有在Windows下編寫一般DLL的經歷,再花少量的時間熟練有關插件的調用規則及編程規則,就可進行插件設計與開發;(2)COM,即組件對象模型,是一種以組件為發布單元的對象模型,這種模型使各軟件組件可以用一種統一的方式進行交互。COM既提供了組件之間進行交互的規范,也提供了實現交互的環境,由于同類插件一般有統一的調用接口,因此也可使用COM技術作為開發插件的基礎。COM接口是COM對象與系統之間的交互通道,而調用插件的函數在同類插件間是基本相同的,因而,可把插件的初始化及調用插件的交互通道定義為插件的接口,則編寫插件也就是編寫COM插件的過程,同時,也有利于多個插件實現在一個COM組件中,并應用組件的聚合等專有技術實現功能更強的插件。使用COM技術作為編寫插件的技術,更易于在插件與系統間進行交互操作,對編寫插件及擴大插件的使用范圍是很有利的;但與之相應的是,應用COM技術編寫插件時,涉及大量的COM技術及原理,導致開發者難以迅速地應用該項技術編寫插件來解決實際問題。

4插件技術在數據庫開發中的應用

由于系統設計上已經使用插件技術,將每項功能都單獨設計,使得系統在開發過程中變得更加可視,可控,易控,用插件技術設計數據庫系統并不是簡單的將數據庫系統劃分模塊,它已經將每項功能都劃分成了單獨設計體,因此,在每項功能的開發過程中,都可以明確每一項功能的開發責任,可以明確每一項功能的結構,輸入,輸出,所需數據,處理方式等要素。它將模塊更加細化,并切斷了模塊當中每一項功能之間的聯系,減少了制約因素。這就使開發進度表由模塊級劃分變成由功能級劃分,由模塊進度線變成功能進度線,從而擴大了單位時間的開發量,變縱向式開發為橫向式開發。在功能開發完畢。進行調試過程當中,由于開發使用了插件技術,使得調試工作更加簡單,調試內容變得更少,更有利于進行白盒測試,保證了軟件的質量。

猜你喜歡
程序功能
也談詩的“功能”
中華詩詞(2022年6期)2022-12-31 06:41:24
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
失能的信仰——走向衰亡的民事訴訟程序
“程序猿”的生活什么樣
關于非首都功能疏解的幾點思考
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
懷孕了,凝血功能怎么變?
媽媽寶寶(2017年2期)2017-02-21 01:21:24
“簡直”和“幾乎”的表達功能
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
中西醫結合治療甲狀腺功能亢進癥31例
主站蜘蛛池模板: 国产精品无码翘臀在线看纯欲| 无码精品国产VA在线观看DVD | 久久综合五月| 一区二区日韩国产精久久| 日本黄色a视频| 国产一级二级三级毛片| 狠狠做深爱婷婷久久一区| 露脸国产精品自产在线播| 国产欧美日韩精品综合在线| 伊人精品视频免费在线| 日韩无码黄色网站| 波多野结衣在线se| 国产超碰在线观看| 国产激情第一页| av午夜福利一片免费看| 免费AV在线播放观看18禁强制| 欧美视频在线第一页| 亚洲第一视频网| 成人免费视频一区| A级毛片无码久久精品免费| 久久这里只精品国产99热8| 国产欧美日韩资源在线观看| 亚洲国产亚洲综合在线尤物| 国产精品永久在线| 香蕉伊思人视频| 国产一区三区二区中文在线| 日本高清成本人视频一区| 国产麻豆精品久久一二三| 亚洲成人高清在线观看| 97国产精品视频自在拍| 国产成人久视频免费| 亚洲精品国产成人7777| 天天综合天天综合| 日本一区二区三区精品视频| 国产网站在线看| 国产无遮挡猛进猛出免费软件| 2024av在线无码中文最新| 九九九精品视频| 99免费视频观看| 日韩毛片在线播放| 亚洲精品视频在线观看视频| 亚洲无码精品在线播放| 日韩欧美国产成人| 国产一在线观看| 国产精品手机在线观看你懂的| 在线精品亚洲一区二区古装| 亚洲国产欧美国产综合久久| 午夜欧美在线| 亚洲国产91人成在线| 国产亚洲欧美日本一二三本道| 色丁丁毛片在线观看| 久久窝窝国产精品午夜看片| 91在线中文| 高清码无在线看| 欧美日韩导航| 国产特级毛片aaaaaaa高清| 91无码国产视频| 免费一级α片在线观看| 亚洲永久免费网站| 日本伊人色综合网| 99免费在线观看视频| 理论片一区| 久久永久精品免费视频| 91福利一区二区三区| 欧美精品1区| 一级香蕉视频在线观看| 色香蕉影院| 伊人久久久大香线蕉综合直播| 成人午夜亚洲影视在线观看| 91亚洲影院| 在线观看亚洲人成网站| 亚洲欧洲日本在线| 谁有在线观看日韩亚洲最新视频| 久青草免费视频| 欧美专区日韩专区| 在线无码九区| 色综合天天娱乐综合网| 日韩精品无码免费专网站| 国产精品久久久久无码网站| 国产成人精品一区二区不卡 | 依依成人精品无v国产| 国产区在线观看视频|