簡體   English   中英

無法加載包DCP_d5.bpl

[英]Can't loadpackage DCP_d5.bpl

我正在將舊的舊版Delphi 5應用程序升級到Delphi XE7。 該應用程序基於許多舊版軟件包,其中之一是DCPcrypt 1.3。 DCPcrypt是有問題的:它在兩次Delphi XE7 IDE的運行之間神秘地卸載了,如果不手動清理注冊表,我將無法重新安裝。 重新啟動Delphi XE7 IDE時給出的錯誤消息是“無法加載程序包DCP_d5.bpl。找不到指定的模塊。是否要在下次加載項目時嘗試加載此程序包?”,然后如果我嘗試重新安裝,則顯示“無法安裝軟件包\\ DCP_d5.bpl,因為已經加載了具有相同基本名稱的另一個軟件包(DCP_d5.bpl)”。

所討論的DCPcrypt版本與1999年3月23日的描述捆綁在一起。

Delphi軟件包系統是否已更改,將DCPcrypt留在后面並導致這些錯誤? 如果是這樣,誰能建議需要更新的內容?

顯然,必須首先卸載所有依賴給定軟件包的軟件包,然后再卸載,重建和重新安裝有問題的軟件包,然后重新構建並重新安裝從屬軟件包。 有時在卸載和重新安裝之間必須關閉Delphi。

關於軟件包名稱,Delphi約定不在軟件包名稱中包括Delphi版本,而是在配置中將Delphi版本(在本例中為210,對於Delphi XE7)添加到LIBSUFFIX中。 BPL的名稱中將帶有Delphi版本,但是引用模塊只能指定軟件包名稱,並且正確的BPL將在構建時進行匹配。

在這種情況下,我創建了一個新的XE7軟件包項目,命名為DPCcrypt,並將LIBSUFFIX設置為“ 210”以表示Delphi XE7。 我還向項目中添加了DCPcrypt.rc資源文件,並帶有一個名為DCPCRYPT的圖標,為程序包提供了一個圖標。 最后,我在DCPcrypt.pas中為VER280添加了一個條件編譯塊,以將DWORD類型定義設置為longword,因為默認值為longint(Delphi的很老版本的遺產,它沒有32位無符號整數),這樣就消除了編譯時數百條未簽名的警告與未簽名的警告消息。

現在可以加載和安裝DCPcrypt項目。 (其程序包名稱為DCPcrypt,但其BPL名稱為DCPcrypt210。)不管掛起什么問題,現在它的負載都消失了。

暫無
暫無

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

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