亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種Delphi的DLL封裝和調用方法

文檔序號:6346205閱讀:1263來源:國知局
專利名稱:一種Delphi的DLL封裝和調用方法
技術領域
本發(fā)明涉及一種Delphi的DLL封裝和調用方法,特別涉及的是DELPHI中怎樣封裝和調用的思想方法。
背景技術
在Delphi中如果程序的各個模塊分別保存在不同的單元文件中并通過uses指令來互相調用這就是一個典型的靜態(tài)鏈接于是各個靜態(tài)的子例程編譯之后連接器從Delphi編譯過的單元或靜態(tài)庫中取出子例程編譯代碼并添加到執(zhí)行文件中。靜態(tài)鏈接無法實現物理上的切割和封裝而且一旦其中某個單元或模塊改動其他所有單元或模塊都得隨之重新編譯和連接。

發(fā)明內容
基于上述問題,特此發(fā)明一種Delphi的DLL封裝和調用方法;首先是物理封裝與動態(tài)鏈接,用于實現物理切割和封裝的bpl包DLL動態(tài)鏈接庫或COM+組件都是一種動態(tài)鏈接的形式在動態(tài)鏈接情況中連接器只使用子例程external聲明中的信息在執(zhí)行文件中產生一些數據表格當Windows向內存中裝載執(zhí)行文件時它首先裝載所有必需的DLL然后程序才會啟動在裝載過程中Windows用函數在內存中的地址填充程序的內部表格每當程序調用一個外部函數時它就會使用該內部數據表格直接對DLL代碼它當前裝載在程序的地址空間中進行調用注意該模式不會涉及兩個不同的應用程序DLL已經變成了應用程序的一部分并裝載在同一地址空間所有參數的傳遞都發(fā)生在堆棧上與其它任何函數調用一樣這里我們不打算討論DLL的編譯因為我們首先想重點介紹Delphi中的DLL封裝和調用對象技術。第二是用DLL封裝對象,DLL封裝對象的實例是在DLL中創(chuàng)建的CarObj和BicycleObj函數創(chuàng)建并輸出了 Car對象和Bicycle對象的引用這樣DemoSvr動態(tài)鏈接庫就可以通過CarObj和BicycleObj函數輸出Car對象和Bicycle對象了。第三是利用Delphi接口實現DLL中對象的動態(tài)綁定。調用DLL的應用程序只能使用DLL中對象的動態(tài)綁定的方法理解這一點是實現DLL封裝和使用對象的關鍵那么Delphi接口技術為我們提供了 一個最佳選擇。使用接口還帶來了更多的好處首先無需使用virtual和abstract限定符修改對象方法聲明避免了程序閱讀上的錯覺其次利用接口實例計數器自動管理對象的生命期避免了程序員遺忘銷毀對象造成的內存泄漏。第四是使用抽象類實現DLL中對象的動態(tài)綁定。既然DLL中封裝和調用對象受到了對象動態(tài)綁定機制的限制那么除了利用Delphi接口技術外我們還可以考慮使用抽象類來實現DLL中對象的動態(tài)綁定機制它封裝了外觀類TfrmUsers我把業(yè)務部分包括數據模塊設計成提供服務的服務器這是一個動態(tài)鏈接庫文件UserSvr.dll它封裝了業(yè)務類TuserMaint和數據庫訪問類TuserDM這種設計體現了界面和業(yè)務分離的思想。由于調用DLL的應用程序只能使用DLL中對象的動態(tài)綁定的方法我們不妨專門設計一個抽象類TIUserMaint作為提供對象方法的接口在抽象類TIUsertfaint中有供應用程序使用的對象方法不過它們都是虛抽象方法目的是支持動態(tài)綁定而又無需提供實現一般抽象類只定義接口它由虛抽象方法組成而沒有實際的數據為了實現抽象類TIUserMaint的抽象方法原來的TUserMaint類需要繼承TIUserMaint類并覆蓋其所有的虛抽象方法新的TUserMaint類聲明如下TUserMaint = class (TIUserMaint)privateUserDM: TUserDM ;publicfunction GetDepList:TStrings ;override ;function GetUserList (strName: String):OLEVariant ;override ;procedure UpdateUserData(UserData:OleVariant ;out ErrCount:1nteger);override ;constructor create ;override ;destructor Destroy ;override ;end ;但實際上TUserMaint類原有的實現部分并不需要改動所以我們的工作量不大。
權利要求
1.一種Delphi的DLL封裝和調用方法:該方法主要是DELPHI的DELL的封裝技術及動態(tài)的調用方法。
2.根據權利要求1的Delphi的DLL封裝和調用方法,此方法主要由用DLL封裝對象利用Delphi接口實現DLL中對象的動態(tài)綁定及使用抽象類實現DLL中對象的動態(tài)綁定。
全文摘要
一種Delphi的DLL封裝和調用方法DLL是一種應用最為廣泛的動態(tài)鏈接技術,但是由于在DLL中封裝和調用對象受到對象動態(tài)綁定機制的限制,使得DLL在封裝對象方面有一定的技術難度,導致有些Delphi程序員誤以為DLL只支持封裝函數不支持封裝對象。本方法著重介紹了DLL中封裝和調用對象的一種特有原理和思想。
文檔編號G06F9/44GK103092590SQ20111034595
公開日2013年5月8日 申請日期2011年11月1日 優(yōu)先權日2011年11月1日
發(fā)明者楊際榮 申請人:鎮(zhèn)江華揚信息科技有限公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1