2011-11-04 39 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/