2011-11-04 42 views
1

是否有任何方法可以將舊的Borland C++(v6)項目轉換爲Delphi(v7或XE,如果有幫助,但最好是D7)?我可以將C++項目轉換爲Delphi嗎?

我似乎記得BCB可以編譯Pascal,但不是相反。無論如何,我想把這個項目交給一個不認識C++但知道Delphi來擴展它的人。

我不想保留任何舊的C++代碼,只是將所有內容都轉換爲Delphi - 如果必須手動的話。

希望你能節省我一些時間...

+1

您是否計劃將C++源代碼轉換爲等效的Delphi源代碼?即使您設法導入bpr項目文件,它們也不會與其他語法兼容。根據項目規模,這可能是很多工作,更不用說調試,以確保在過程中不引入新的錯誤。 – greatwolf

+0

爲什麼你不想保留任何舊的C++代碼?沒有轉換器工具。 –

+0

因爲接管代碼的人知道Delphi,但不知道C++。現在我發現自己處於相同的情況下,現在就是 – Mawg

回答

5

自動轉換?沒有。如果你擔心自己必須這樣做,但願意這樣做,那麼是的,我可以證實你沒有銀彈,你必須手動完成。

在這一點上,如果你願意保留一些C++代碼的時候,我會建議你這樣做:

  1. 的UI可以建立在C++與C++ Builder和模型(邏輯代碼)可以保留C++,也可以用C++ Builder構建。

  2. 如果您想在delphi中重寫用戶界面,將其加載到C++部分(可以編譯爲DLL或BPL庫)並在運行時調用它們並不會太困難。

需要注意的是加載了,並要求從德爾福應用C++代碼並不難,而C++ Builder和Delphi基本上都是同一事物的兩個口味,因爲C++ Builder是真的只是編寫你的應用程序的方式C++,同時使用下面的Delphi/pascal UI框架(VCL)。

因此,考慮C++ Builder(RAD Studio的一部分)或Delphi + C++混合體,因爲完全重寫一個非平凡的應用程序需要很長時間。但是,是的,如果有足夠的時間,你可以重寫任何東西。但你真的想要嗎?

如果您的最終目標是100%純德爾福,但您希望先完成部分轉換,然後再完成轉換,如果您願意,可以分階段完成;在某些C++部分中鏈接,從DLL加載它們,甚至將.obj文件靜態鏈接到您的delphi應用程序中。

看來你已經死定了C++。我很長一段時間C++ hater。如果那是你的交易,我明白。

但是,我們不要在這裏倉促;雖然恕我直言,MFC/ATL是廢話,但使用MFC/ATL將舊的Borland C++ OWL庫代碼庫轉換爲現代的Visual C++代碼庫可能並不難。另外考慮一下,如果您應該移植到QT/C++或wxWidgets/C++(您可以跨平臺並獲得在Mac上以及在Linux上運行的版本!)。用戶界面的選擇有很多,但仍然停留在C++上,而且這肯定比用完全不同的語言(Pascal或Python,或者C#或Java)手動重寫整個事件更容易。只要把它寫在第一位!)。我喜歡pascal,我更喜歡C++大約100次。如果有的話,我偏偏對德爾福有利。但完全重寫幾乎是不實際的,AUTO-CONVERSIONS也是一個夢想。現代C++實際上是一種非常好的語言。爲什麼要重寫你的代碼庫?

+0

+1全球編輯和一個漫長的艱難時刻。我考慮過使用其中一種C/C++ o Pascal轉換器,但在全球編輯和手動打磨方面可能會更好。謝謝,沃倫 – Mawg

1

我們最近發現自己處於相同的情況:很多傳統的C++ Builder應用程序,需要幾年才能手工完成。

所以我寫了一個小小的perl腳本,對轉換有很大幫助。這不是100%,這是不可能的,但它爲你做了大部分轉換。它可以免費下載和使用任何你想要的方式。看看這裏:http://copycat.fr/wordpress/porting-old-cbuilder-software-to-new-versions/