簡體   English   中英

如何使用Delphi 6修改Indy 8 IdMessage.pas?

[英]How do I modify Indy 8 IdMessage.pas with Delphi 6?

我有一份Delphi 6和一個使用Indy TIdMessage組件的簡單電子郵件程序。 我想刪除IdMessage.pas的第IdMessage.pas行,然后重新編譯應用程序。 我很難找到清晰的文檔,所以我嘗試了這些步驟來修改組件:

  • 在IDE中打開\\delphi6\\source\\indy\\indy.dpk
  • 在“包”窗口中雙擊IdMessage.pas
  • 編輯了IdMessage.pas並保存了該文件
  • 單擊“包”窗口中的“編譯”
  • 單擊項目菜單中的“Build Indy”
  • 單擊“包”窗口中的“安裝”

但后來我得到一個錯誤, \\bpl\\indy60.bpl can't be loaded because \\bin\\indy60.bpl is already loaded 所以我在“組件”菜單中嘗試了“安裝包...”,但只找到了\\bpl\\dclindy60.bpl 所以我刪除了那個包,並且:

  • 在IDE中打開\\delphi6\\source\\indy\\dclindy.dpk
  • 單擊“包”窗口中的“編譯”
  • 單擊項目菜單中的“生成dclIndy”
  • 單擊“包”窗口中的“安裝”

IDE確認已安裝所有組件(包括TIdMessage ),但電子郵件程序仍然表現為原始未修改組件仍在使用中。

我究竟做錯了什么?

如果您使用的是運行時包,那么您需要確保程序找到新的包文件.bpl。

但您可能沒有使用運行時包。 因此,運行時程序使用位於Delphi安裝文件夾中的.dcu文件靜態鏈接Indy代碼。 具體在本例中為<ProgramFiles>\\Borland\\Delphi6\\Lib\\IdMessage.dcu 您需要確保鏈接新代碼。 最簡單的方法是將修改后的文件添加到項目中。 這意味着修改后的版本會被編譯並鏈接到您的程序中。

由於您的修改位於設備的實施部分,因此您需要做的就是這些。 如果修改在接口部分,您將遇到“單元X使用不同版本的單元Y編譯”錯誤。 您可以通過將其余的Indy源添加到項目中來解決這個問題。

需要強調的一點是,您永遠不應該修改Delphi安裝文件夾下的文件。 如果要對這些組件進行修改,請復制這些文件並對這些副本進行修改。

暫無
暫無

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

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