我可以将C ++项目转换为Delphi吗?

时间:2011-11-04 00:45:34

标签: c++ delphi converter

有没有办法采用旧的Borland C ++(v6)项目并将其转换为Delphi(v7,如果有帮助,可能是XE,但最好是D7)?

我似乎记得BCB可以编译Pascal,但不是相反。在任何情况下,我都希望将项目交给那些不懂C ++而且知道Delphi以扩展它的人。

我不想保留任何旧的C ++代码,只需将所有内容转换为Delphi - 如果必须的话,手动将其转换为。

希望你能节省我一些时间......

2 个答案:

答案 0 :(得分:5)

自动转换?没有。如果你担心必须自己做,但愿意这样做,那么是的,我可以向你确认没有银子弹,你必须手动完成。

此时,如果你愿意保留一些C ++代码,我建议你这样做:

  1. UI可以使用C ++ Builder在C ++中构建,模型(逻辑代码)可以保留C ++,也可以在C ++ Builder中构建。

  2. 如果你想在delphi中重写UI,那么加载C ++部分(可以编译成DLL或BPL库)并在运行时调用它们就不会太难了。 p>

  3. 请注意,从Delphi应用程序加载和调用C ++代码并不难,而且C ++ Builder和Delphi基本上是两种相同的东西,因为C ++ Builder实际上只是一种用C ++编写应用程序的方法。下面是Delphi / pascal UI框架(VCL)。

    因此,考虑使用C ++ Builder(RAD Studio的一部分)或Delphi + C ++混合,因为完全重写非平凡的应用程序需要很长时间。但是,是的,如果有足够的时间,你可以将任何东西改写成其他东西。但你真的想要吗?

    如果您的最终目标是100%纯Delphi,但您希望先完成部分转换,然后再完成转换,您可以分阶段完成,如果您愿意的话;链接一些C ++部分,从DLL加载它们,甚至静态地将.obj文件链接到你的delphi应用程序。

    看起来你已经死定了C ++。我很长时间都是C ++的仇恨者。如果这是你的交易,我理解。

    但我们不要在这里匆忙;使用MFC / ATL将旧的Borland C ++ OWL库代码库转换为现代Visual C ++代码库可能并不是非常困难,尽管恕我直言,MFC / ATL是废话。还要考虑一下,如果您应该移植到QT / C ++或wxWidgets / C ++(您可以跨平台并获得在Mac上运行的版本,并在Linux上运行!)。 UI有很多选项,而且保留在C ++上,这肯定比用完全不同的语言手动重写整个东西(Pascal或Python,或C#或Java,实际上,所有相同的努力量:只要它首先写出所有内容!)。我喜欢pascal,我更喜欢C ++大约100次。如果有的话,我对Delphi的偏爱有太大的偏见。但完全重写几乎从不实用,而自动转换也是一个梦想。现代C ++实际上是一种非常好的语言。为什么要重写代码库?

答案 1 :(得分:1)

我们最近发现自己处于相同的情况:许多遗留的C ++ Builder应用程序,需要花费数年才能完全转换它。

所以我写了一个小的perl脚本,对转换有很大的帮助。这不是100%,这是不可能的,但它会为您完成大部分转换。它可以免费下载和使用您想要的任何方式。看看这里:http://copycat.fr/wordpress/porting-old-cbuilder-software-to-new-versions/