当前位置:  开发笔记 > 编程语言 > 正文

将Delphi代码转换为C++的最佳方法?

如何解决《将Delphi代码转换为C++的最佳方法?》经验,为你挑选了2个好方法。

我有一个用Delphi编写的应用程序在Delphi 2007中编译.我认为它最初是用Delphi 7编写的.

无论如何,我需要将所有核心非GUI代码转换为C++,因为我想发布该软件的Mac版本.

做这个的最好方式是什么?我可以采取任何捷径来加快这个过程吗?

编辑:代码编译为本机代码,而不是.NET.



1> Mason Wheele..:

简单的回答:如果没有完全重写,你根本无法将非平凡的Delphi代码移植到C++.C++的对象模型与Delphi有很大的不同.它没有像TObject这样的基类,从中派生出所有其他对象,并且它缺乏对Delphi代码通常认为理所当然的许多RTTI内容的支持.并且没有简单的方法可以在C++中重新实现Delphi RTTI,因为很多都是在编译器级别完成的,而且很多都是基于所有Delphi类都来自TObject的事实.

C++也缺乏对Delphi中常见的单元初始化终结部分概念的支持,而且它所反而严重破坏了.(查看所有血腥细节的"静态订单初始化惨败".)

Delphi的异常处理也比C++更先进.部分内容是对象模型及其编译魔术的一部分.另外,C++不支持try-finally结构.

如果您想将Delphi项目移植到Mac,Free Pascal是您的最佳解决方案.它与Delphi没有100%的兼容性,但它对很多东西都很好,你特别提到你不需要移植Delphi GUI的东西.AFAIK GUI区域是大多数FPC兼容性弱点的来源,因此如果没有必要,FPC可能非常接近理想的需求,至少在CodeGear获得OSX编译器之前.(这还没有正式宣布,但基于已经说过的各种事情,假设明年某个时候可以使用它并不是不合理的.)


2.我从哪里开始?捕获异常总是适用于引发的异常的真实类型; 你不必通过箍来"多态地投掷"和"多态地捕捉".在另一个处于活动状态时激活异常不会调用Terminate().

2> Chris Lutz..:

为什么不使用OS X Delphi编译器?免费Pascal声称支持OS X上的Delphi(虽然不是Pascal编码器,我还没有尝试过).

推荐阅读
雯颜哥_135
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有