[英]Move project from Delphi 3 to Delphi 2010
我被要求重新開放我在1998/99在Delphi 3中編寫的一個項目,從那時起它一直運行穩定。 我有一個老舊的Windows 98機器上的Delphi 3代碼庫,它只是為了讓這個項目保持活力。 顯然,在進行任何重大修改之前,我想將源代碼庫帶入21世紀。
我很高興地注意到Delphi 2010(我目前在2007年)聲稱能夠從Delphi 2導入項目。 有沒有人有從Delphi 3導入大型項目的經驗? 我可以期待這是一個簡單的過渡,還是一個困難的過渡?
此外,原始項目使用第三方組件,包括DBISAM,WPTools和TMS Planner。 我注意到所有這些仍然可用於最新版本的Delphi。 假設我首先將新版本安裝到Delphi 2010中,我是否可以期望我的應用程序中使用這些組件的部分也被翻譯? 我知道至少WPTools已經改變了它的一些組件結構和接口,因為原始應用程序中使用的版本顯然我會有一些重新編碼去做,但程序的那些部分的失敗會阻止我的代碼庫正在升級?
應該很有可能進行這種遷移,並且根據代碼的編寫方式,它可能是痛苦的,也可能是無痛的。 不幸的是,在開始遷移過程之前,不容易說出哪些內容。
我要做的第一件事是確保所有DFM文件都轉換為它們的文本表示。 我相信這在Delphi的后續版本中設置為默認值,但我記得Delphi 3使用的是二進制格式。 在delphi 3 bin目錄中應該有一個名為DFMConvert的實用程序文件,它允許您將DFM轉換為文本。 您希望這樣做的原因是,如果由於組件未加載而必須手動編輯DFM,則可以確保您可以閱讀源代碼。 您不僅會跳轉Delphi的版本,而且還會跳過您使用的每個組件的版本,並且可能存在一些可能導致組件加載失敗的不兼容性。 我發現如果是這種情況並且您有一個“新”版本,那么直接使用編輯DFM源並將測試表單與其上的組件與舊版本包含的內容進行比較。 刪除任何不合適的(或重命名),然后嘗試再次加載表單。
正如Frabricio所提到的,如果您使用變體,那么您需要對您的使用條款進行微調。
好消息是,一旦你更正了components / uses子句,你的代碼本身應該可以正常工作。 如果你直接進入Delphi 2010,你唯一的另一個問題就是Unicode,並且編譯器通過錯誤和警告將所有這些問題都指向了你。
正如你有D2007並假設所有這些組件集都帶有D2007 dcus,我建議你先嘗試在D2007上重新打開代碼庫。 然后,轉到D2010,因為實際VCL的Unicode功能 - 這可能會產生一些遷移問題(我不會在這里討論,因為它在網上和SO上都有深入的討論)。
我會說,因為在D5和D7之間的某個地方(沒有准確記錄)發生了rtl的單元重組(創建了Variants.pas單元和許多OTAPI單元更改了名稱等)。 這就是你出現第一個問題的地方。 編輯:不僅Variants被重新定位,而且還有很多IDE集成 - 以避免未經許可的代碼被部署。 如果您有一些OTAPI代碼(例如,允許在繼承表單上發布屬性的代碼),則需要將其重定位到包項目中。
正如skramradt所說,你可能不得不處理二進制DFM的事情....
之后,如果一切正常,請轉到Unicode。 根據應用程序的不同,它可以很容易也可以不容易。 對於我的,不是很煩惱。 但我知道還有其他人面臨比我更大的問題。
以下是我們關於升級到Delphi 2010的一些注意事項
我有大約100個應用程序dll和COM服務器進行升級。 可能大約12周的調試工作。 希望這可以幫助。
為了讓您放心,我最近將我正在開發的軟件從Delphi 4轉換為Delphi 2009以獲得Unicode功能,我遇到了很多問題,但它們都可以在幾周內解決。
有一點需要注意:如果您使用任何第三方軟件包,請確保它們具有Delphi 2010版本,您可以在轉換之前升級到該版本。 Delphi 2009可以,但我不會嘗試在D2010中使用舊版軟件包。
關於將D3遷移到D2010,我不能說太多,但我最近成功地將D6遷移到了D2010。 首先,我所做的是確保您在D3中使用的所有第三方組件也可在D2010中使用。 從D6到D2010重新編譯任何自定義構建的組件。 加載我的D6源代碼,並編譯。 處理所有unicode問題。 一個接一個地處理所有編譯器錯誤...所有在大約3天內完成(大約30000行代碼)
我確認其他人在說什么:就你自己的代碼而言,將D3應用程序轉換為D2010通常很容易。
我看到兩個困難:
最困難的部分是第三方組件。
看起來您正在使用的所有組件仍然存在於D2010,這是一個好點。 但它們的界面很可能已經改變,當然還需要進行一些代碼更改。
我有一個Delphi 7項目組,Delphi 2010很快就升級了。 不幸的是,在下一次開始使用新創建的Delphi 2010項目組文件時,IDE在加載項目后崩潰並消失。 沒有顯示異常,沒有錯誤消息。 我的解決方法是一直使用Delphi 7文件,讓Delphi 2010升級它喜歡的任何東西,而不使用新創建的項目文件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.