也许您已经知道,Delphi的下一个版本很可能是cross-platform。另外,这是关于此事的一些polls

虽然现在编写交叉编译器已经不是我们非常感兴趣的事情,但是确实可以移植到Windows并已将其绑定(bind)到多个平台的库。

您可以考虑,例如在VCL(Delphi的标准库)中。尽管它仅是为Windows设计的,但它具有值(value),当然,依赖于它的巨大代码库也是如此。

问题是:
哪种方法可以最好地使应用程序/库跨平台,并且可以确保平滑的转换/升级路径(当然要尽可能多)?

我再次强调这一点,我们不感兴趣,哪一种是进行跨平台开发的最佳方法(对此主题有疑问)。我们还对另一个需求感兴趣:旧的代码库/安装管理。

附言:我们欢迎其他语言(例如C/C++)在类似情况下的经验和/或方法,这些都被视为标准做法。

提前致谢。

最佳答案

视觉组件开发人员的观点:

在代码中添加功能级别,以便能够在不更改组件“核心”的情况下添加另一个平台。
希望编译器将具有平台切换器。 (最好是一个以上的版本,彼此协同工作。例如Windows/ARM,Windows/386,OSX/Cacao/386,Linux/Gnome/386)。

布局结构可能看起来像这样。

  • ComponentJ.pas
  • Linux\ComponentJ.pas
  • Linux\Gnome\ComponentJ.pas
  • Linux\KDE\ComponentJ.pas
  • OSX\ComponentJ.pas
  • 386\ComponentJ.pas
  • ARM\ComponentJ.pas

  • 作为应用程序开发人员:

    首先,将代码中的所有WIN API调用移至Windows目录中的一组库中,以便能够在库级别对其进行IFDEF转换,并将其转换为编译器一经支持就支持的另一个平台可用,但只有当我遇到它们时才可以使用。)
    这还将增加为新平台更轻松地添加适配器的可能性。
    无论如何,将可能的依赖项移到中心位置都是一个好习惯。

    关于delphi - 跨平台开发-Delphi 2011 : How to made a Windows-tied library cross-platform?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1420129/

    10-12 00:42
    查看更多