檢查項目源(DPR)和/或遷移的應用程序項目的設置。
您可能會在uses
列表中找到引用通常是VCL/RTL組成部分的ADO單元的明確條目。
或者,您可能會發現相關的ADO * .pas文件已放置在與DPR文件本身相同的位置。
或者,您可以在項目搜索路徑中引用的位置找到這些單位。
無論哪種方式,問題很可能是由於舊項目從VCL源代碼中取得單元並將它們放置在項目特定位置以便允許對這些單元進行更改。這是一種用於修復VCL單元中的錯誤的技術,只要單元的接口未被修改,並且/或者所有從屬單元被類似地重新編譯,這些技術就可以工作。
單元的interface
部分確定其他單元如何鏈接到它,並且如果更改該接口,則與其他單元的鏈接將中斷。如果這些其他單元可以重新編譯,那麼這是解決的,但在VCL單元的情況下,它通常會導致這些問題,因爲其他單元通常是而不是重新編譯。
一旦確定了項目中涉及的已更改的VCL單元,就應該將更改的版本與隨後編譯器(Delphi 2010)提供的版本進行比較。您可能會發現,Delphi 7項目中的更改是修復現在在標準VCL版本的單元中修復的錯誤,在這種情況下,您可以從項目中刪除修改的ADO VCL單元,並簡單地使用VCL版本。或者,您可能會發現Delphi 7單元中所做的更改需要移植到Delphi 2010版本中,在這種情況下,您應該複製允許在Delphi 2010項目中重新編譯相關單元的項目組織使用德爾福2010個單位,然後合併從德爾福7版本將更改那些德爾福2010單位:
Delphi 7 original.pas Delphi 2010 original.pas
^ \
diff --------------------------------> port
v _\|
Delphi 7 modified.pas Delphi 2010 modified.pas
注意,如果德爾福2010原始版本來自德爾福7原有的不同,那麼你一定要小心端口您的項目所需的那些更改,而不會撤消其他修補程序,也不會影響修改後的單元的interface
。
當你自己編譯embarcadero單元時會出現這種情況 – 2014-11-23 23:14:29