delphi如何無原始碼呼叫bpl

2021-07-25 12:54:09 字數 1043 閱讀 1717

摘要:

如果需要動態編譯,在編譯時必須有dcp(可以獲取類和變數資訊),執行期必須有bpl.

如果需要靜態編譯,需要dcu檔案就可以.

正文:delphi開發中,link with runtime packages(delhpi 7版本叫build with runtime packages),常常給大家帶來很多困惑,下面特此全面說明一下關於這個編譯開關的選項應用.

什麼叫動態編譯和靜態編譯:link with runtime packages這個開關勾上就叫動態編譯,反之叫靜態編譯.

動態編譯是一種執行期載入bpl的技術,執行期判斷是否需要載入該bpl,可以減少記憶體占用.

靜態編譯會將程式需要的bpl在編譯器直接編譯到exe中去.不論是否使用該bpl中的功能,都會被載入.

1.關於靜態編譯/設計期編譯必須的檔案:

如果不勾選link with runtime packages(delhpi7版本叫build with runtime packages),就是靜態編譯,靜態編譯會將唯一輸出乙個exe檔案.

靜態編譯/設計期編譯的時候必須有dcu檔案,dcp不需要.

2.動態編譯必須的檔案:

動態編譯在編譯時必須有dcp檔案,在執行期需要有bpl檔案.

動態編譯需要強調的一點,動態編譯並非全部都是動態的;開關設定link with runtime packages旁邊,有個runtime packages屬性,這個是描述哪些包需要在執行期發布的.如果你的程式用到了某些包,但包又不再這個列表中,那麼這個包實際上還是屬於靜態編譯.發布的時候,不需要帶上這個包的.

3.關於link with runtime packages/build with runtime packages開關的使用:建議一般開發過程中,將這個開關勾上,這會加快編譯的速度.當你發布的時候,可以根據自己實際需要,再決定是否將這個開關關閉.

4.關於載入包的時機:一般被主程式use的,或者被相關的間接use的bpl,都會在程式初始化的時候自動載入;有些包並非被主程式直接引用,也沒有被其他相關的包use,也就是一些採用**模式的bpl包,這些包需要通過loadpackage才能被使用.

怎麼除錯Delphi原始碼

delphi除錯概述2007 06 13 16 15delphi除錯入門級的經典文章,如果是新手的話此文值得好好的讀一讀 delphi除錯概述 除非你的程式只有幾行,否則幾乎不可能一次寫成,因此除錯就非常必要。然而許多初學者不知道如何進行除錯,寫完程式就執行,發現結果不對再看 這樣覺得非常吃力。這裡...

C json原始碼呼叫

2,挑選需要的 檔案。3,通過codeblacks編譯器驗證原始碼的使用 2,挑選需要的 檔案 jsoncpp src 0.5.0 src lib json jsoncpp src 0.5.0 include json 複製這兩個資料夾下的所有檔案到同乙個資料夾下面,資料夾名字命名為json,如下所...

提公升程序令牌 Delphi原始碼

眾所周知,當我們要結束乙個程序時,可以呼叫windows api函式terminateprocess函式。但是,有很多程序依然還是無法結束的,這是因為程序許可權不夠,這時我們可以給程序提公升許可權再k掉k不掉的程序。一般程序獲取了sedebugprivilege許可權後都可以殺掉大部分程序了。提公升...