跨平台信息

4

我已经查看了一些关于跨平台设计的信息。然而,我找不到一个我想要的答案。

我的想法是在Delphi(Windows)和X-Code(Mac)中设计UI,并使用OS无关的C++代码作为程序的基础部分。这种实现方式是否可行?我看到了很多关于跨平台编译器、框架和GUI工具的讨论,但我真的希望界面保持100%本地化。

如果这是一个荒谬的问题,请原谅我,因为我还比较新于编程领域,并正在学习。我们公司有一个广泛的Delphi应用程序目录,这些应用程序已经在过去15年中为Windows开发,而我在过去的一年中大部分时间都在使用Delphi。


Delphi不是跨平台的。那些只是闲言碎语。 - Premature Optimization
@Downvoter 是指 Delphi 语言还是 Delphi IDE?FPC 可以编译 Delphi 代码。但有一定限制。 - mjn
3个回答

4

如果你熟悉Object Pascal语言,可以看看 FreePascal 编译器和免费跨平台IDE Lazarus(适用于Windows、Linux、Mac OS X)。


3
你应该看一下 wxWidgets http://www.wxwidgets.org/,以进行100%本地化编程。
从我的角度来看,我看不出使用两个不同的特定gui设计器针对两个(或更多)目标平台的好处。如果平台特定的部分在您的架构中得到清晰分离,则应很容易共享代码。wxWidgets使您能够在两个平台上使用相同的gui定义,而不会失去本机特性。
就我个人而言,我不再使用C++进行UI设计了。但是为什么要使用两个IDE?我建议使用更抽象的语言(如Java与Netbeans / Eclipse或更好的C# / .Net与VS / Blend)来处理此UI /事件/交互内容,只在本地优化的二进制代码中保留一些特定部分。
.Net/Mono可以使用不同的工具包来设置ui样式。今天,在UX和外观方面,“本机”意味着遵循系统特定的准则,我认为。这可以通过视图和适配器(请参见Google上的某些设计模式)来实现。外观只是应用程序样式的一个点,也可能是本机外观样式。在WPF世界中,句柄仅用于主窗口(以及使用windows forms的某些传统兼容性原因),但如果您将应用程序的样式设置为以前的win-api-ones一样,则用户不会感到差异。
Qt也有一个C++平台无关的方法,但并不真正本地化。Qt使用本机外观绘制自己的控件(如果需要),并且还提供了在不同平台之间使用/共享UI定义的选项。

1

你的问题绝不荒谬 - 你正在寻找一个我们多年来一直在处理的问题的解决方案 - 如何实现跨平台兼容性和代码重用。但也许有一些观点需要澄清:

正如其他人所说,C++并不是唯一的“操作系统不可知”语言 - 实际上大多数语言都是“操作系统不可知”的 - 通常不是(也不能是)操作系统不可知的是编译器、GUI库等。Pascal、C++、Python、C#、Java等都有各种操作系统的SDK,其中很多是开源的。

如果出于某种原因你坚持要使用C++,可以看看Embarcedaro C++ - 这是一个使用C++而不是Object Pascal的Delphi克隆版。

我认为你应该调查一下Qt:http://doc.qt.nokia.com/latest/index.html - Qt是一个非常优秀的“操作系统不可知”框架,包括GUI小部件以及许多其他强大的库,涵盖了现代PC计算的几乎所有范围。

尽管C++是Qt开发的本地语言,但有许多“语言绑定”可用于使Qt编程与其他语言兼容(根据绑定实现的不同功能程度而异)。我知道使用Lazarus有一个Object Pascal语言绑定可以用于Qt - 我还没有尝试过,但听起来非常有趣。

此外,需要注意:将GUI与应用程序的“底层核心”分离,以使其与操作系统无关,在复杂的应用程序中可能会面临很大的挑战 - 我认为一个好的起点是阅读MVC范例。

希望对你有所帮助。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接