2011-07-28 40 views
4

我查看了跨平台设计的一些信息。然而,我找不到一个问题的答案。CrossPlatform上的信息

我想要做的是设计我的用户界面在德尔福(Windows)和X代码(Mac)与该程序的底层胆量是操作系统不可知的C + +代码。这有可能实现吗?我看到很多关于跨平台编译器,框架和GUI工具的讨论,但我确实想让接口保持100%原生。

请原谅我,如果这是一个荒谬的问题,但我对编程和学习的世界相对较新。我公司在过去的15年里为Delphi开发了大量的Delphi应用程序目录,德尔福也是去年我度过的大部分时间。

+0

德尔福是uncrossplatform。这些只是闲谈。 –

+0

@Downvoter Delphi的语言还是Delphi的IDE? FPC编译Delphi代码。在限制内。 – mjn

回答

4

如果您愿意与Object Pascal一起工作,请查看FreePascal编译器和Lazarus这是一个免费的跨平台IDE(适用于Windows,Linux和Mac OS X)。

+0

谢谢你。我会仔细看看的。 – JamesW

3

你应该看看wxWidgets http://www.wxwidgets.org/编程100%本质。

从我的角度来看,我看不到为两个(或更多)目标平台使用两个不同的和特定的gui设计器的好处。如果平台特定的部分在体系结构中明显分离,那么共享代码应该很容易。 wxWidgets使您能够在两个平台中使用相同的gui定义,而不会丢失本地字符。

个人而言,我不会再使用C++进行UI设计。但为什么你使用两个IDE?我建议使用更加抽象的语言(比如像Netbeans/Eclipse的Java或者更好的C#/ .Net with VS/Blend)来保存这个UI /事件/交互的东西,只保留一些本地优化二进制代码中的特定部分。

.Net/Mono可以为UI风格使用不同的工具包。今天,在用户体验和外观和感觉方面是“本土的”,我认为这意味着遵循系统特定的指导原则。 这可以通过意见和adpaters达到(谷歌的一些设计模式)。 外观只是样式化应用程序的一个要点,它也可能是本地风格。在WPF世界中,句柄仅用于主窗口(以及使用Windows窗体的一些传统兼容性原因),但如果您正在像以前的win-api-ones样式化应用程序,用户不会感觉到不同。

Qt还为C++世界提供了一个独立于平台的方法,但并不是真正的本地方法。 Qt使用本地外观和感觉(如果需要)绘制自己的控件,并且还可以选择在不同平台之间使用/共享UI的一个定义。

1

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

正如其他人所说,C++不是唯一的'操作系统不可知'的语言 - 事实上大多数语言是'操作系统不可知论' - 通常不是(也不能be)操作系统不可知的是编译器,GUI库等等.Pascal,C++,Python,C#,Java和其他许多SDK都有各种操作系统的SDK,大部分都是开源的。

如果由于某种原因您设置了C++,请查看Embarcedaro C++ - 使用C++代替Object Pascal的Delphi克隆。

和海事组织您应该调查的Qt:http://doc.qt.nokia.com/latest/index.html - Qt是一个优秀“与操作系统无关”的框架,包括GUI部件以及跨越非常现代PC计算的整个范围内许多其他强大的库。

尽管C++是Qt开发的本地语言,但也有相当多的“语言绑定”可用于使Qt编程成为可能。 (支持不同程度的功能取决于绑定的实现)我知道有一个使用Lazarus的Qt的Object Pascal语言绑定 - 我还没有尝试过,但它听起来很有趣。

另外,提醒一句:从应用程序的“根本胆量”分离你的图形用户界面,使得它与操作系统无关可以在复杂的应用程序非常具有挑战性的 - 我认为一个良好的开端是阅读MVC范例。

HTH