------摘 自:http://blog.csdn.net/soobey/archive/2005/08/30/468017.aspx
曾經聽說過「bpl就是一種特殊的dll」,但是沒有想到這句話具有這麼大的意義。最近看到有人在屬於某個dpk的unit裡面寫export語句,覺得非常驚奇。但是遍查delphi的help,與export相關的都是library。今天看了《delphi源**分析》,才知道上面這句話的含義。因此有下面的推論:
對dll工程來說,exports既可以寫在工程檔案裡面,也可以寫在unit裡面,沒什麼區別。
bpl是一種dll。
上面的exports很正常。
其實按《delphi源**分析》裡面的說法,bpl只是在dll的基礎上新增了一些特性,比如檢查重複unit之類。作業系統認為bpl和dll是同一型別的檔案。而且書裡面給出了對乙個最簡單bpl的tdump結果:
package nullpackage;
requires
rtl;
end.
e:/ls>tdump -m -ea:v nullpackage.bpl
exports from nullpackage.bpl
7 exported name(s), 7 export addresse(s). ordinal base is 1.
sorted by rva:
rva ord. hint name
-------- ---- ---- ----
0000124c 1 0006 @getpackageinfotable
0000124c 2 0003 @nullpackage@@getpackageinfotable$qqrv
00001254 3 0002 @nullpackage@@packageload$qqrv
00001254 7 0005 initialize
00001260 4 0001 @nullpackage@@packageunload$qqrv
00001260 6 0004 finalize
0000126c 5 0000 @nullpackage@initialization$qqrv
看到有好幾個函式指向同乙個位址了嗎?這個大約就是exports的意思了。
Delphi中的包(二) 關於bpl
摘自 http blog.csdn.net soobey archive 2005 08 29 467732.aspx 現在我們不得不寫自己的dpk工程,以更改地檢測我們的猜想。我們首先建立乙個project group,包含三個工程 program projectexe uses forms,wi...
Delphi中BPL包的使用,個人經驗
用包可以分模組編寫功能,方便開發階段的組織,同時也便於後期的公升級維護,使公升級的粒度越來越少 也是用了c 的類庫之後的感悟 下面寫幾點經驗 一 不要用delphi本身的bpl,把delphi自身的包中的單元取出來,合併成乙個bpl。二 不要直接用三方控制項的安裝包,也要自己建乙個包,把單元檔案中加...
bpl 包的編寫和引用
答案很簡單 因為包的功能強大。設計期包 design time package 簡化了自定義元件的發布和安裝 而執行期包 run time package 則更是給傳統的程式設計注入了新鮮的力量。一旦把可重用的 編譯為執行期庫中,你就可以在多個應用程式中共享它們。所有應用程式都可以通過包訪問標準元件...