簡體   English   中英

運行時打包選項要求提供bpl文件

[英]Run-time packge option asks for bpl files

因此,我為我的應用程序構建了一個運行時程序包。 這需要其他一些BPL,例如: ADORTL.bpl, BDRTL.bpl, VCL.bpl等。 現在,我要使用在主應用程序中創建的BPL,並且還希望在運行時加載它。 因此,每次用戶執行需要從bpl獲取一些信息的操作時,我都會加載它,然后在不需要時將其卸載。

為了在主應用程序中使用bpl,我必須使用運行時程序包編譯我的應用程序。 如果這樣做,當我將.exe文件移動到沒有安裝Delphi的另一台計算機上時,它會發出大量的bpls信息。 有什么方法可以使用運行時程序包構建並以某種方式在exe文件中集成(vcl.bpl,adortl.bpl)?

我希望我的主應用程序僅詢問我創建的bpl,而不是Delphi IDE bpl。

不,這就是它的工作方式。 您可以使用運行時程序包進行編譯,也可以不使用。 這就像在懷孕:無論您是不是。

在項目選項中,您指定使用運行時程序包,其中有一個編輯框,其中列出了所需的程序包。 刪除所有不需要的程序包名稱,將其編譯為EXE文件。

但是請注意,您保留的BPL文件也會使用其他BPL文件。 特別是,您的BPL可能使用VCL和RTL軟件包。 因此,當您加載軟件包時,它將隱式加載其他軟件包。 您不得同時加載任何單元的多個副本。 您的軟件包使用RTL,因此您的EXE也需要使用RTL軟件包。 您不能像我上述那樣在編輯框中忽略它。 如果這樣做,則您的EXE將具有RTL單元的一個副本,而程序包將具有另一個,這是不允許的。

如果有某些由您的軟件包使用的軟件包,那么您可以做其他事情。 從您的軟件包的“需要”列表中刪除該其他軟件包,然后重新編譯。 編譯器將警告隱式包含的單元,即通常位於剛刪除的程序包中的單元。 明確將這些單元添加到您的程序包中,然后再次重新編譯。 重復直到警告消失。 您實質上是在定義所有程序包唯一依賴項的“超級程序包”。 (VCL和RTL不是唯一的依賴關系,因此請不要在“要求”列表中忽略它們。)

您不能安排EXE僅使用一個BPL文件也不能安排該BPL文件的動態加載和卸載。 如果動態加載程序包,則至少還需要使用RTL和VCL程序包。

此外,您同意的Delphi許可證可能會限制您重新包裝RTL和VCL單元。 我不清楚細節。 請仔細閱讀許可證以進行檢查。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM