【问题标题】:what are the disadvantages of using a cross-platform framework to develop for one platform?使用跨平台框架为一个平台开发有什么缺点?
【发布时间】:2012-10-08 15:20:32
【问题描述】:

最近我一直在考虑是否应该开始研究另一个框架,因为我只有一台 windows 机器,而且我不打算很快制作跨平台软件。所以帮助我做出这个决定...

  1. 当我不打算跨平台开发时,使用跨平台框架有什么缺点吗?直觉上,我会说专门为某个平台设计的框架在该平台上的性能会比跨平台框架更好。但我只是假设。

  2. 请列举我可以开始研究的框架和库,以便在 Windows 上使用 C++ 进行快速应用程序开发。有大量文档的优先。如果您提供一个可以帮助我入门的链接,我将不胜感激。

【问题讨论】:

  • 您说的是哪种应用程序?您需要访问数据库吗? 3D图形?这些事情有很大的不同。
  • @BenVoigt 我不打算选择某个框架或库,我正在尝试决定接下来要研究什么,跨平台框架或“原生”框架。

标签: c++ windows cross-platform


【解决方案1】:

当我不打算跨平台开发时,使用跨平台框架有什么缺点吗?

这取决于框架。大多数框架将自己限制在所有平台上都可用的功能上,这可能会在一定程度上限制您。您也可能无法利用给定平台的最佳功能或该平台上的最佳开发环境。

请列举我可以开始研究的框架和库,以便在 Windows 上使用 C++ 进行快速应用程序开发。

这里一个不错的选择是Qt。它为 Windows 和其他平台提供了一个非常好的基于 C++ 的框架。如果您只需要 Windows,还有其他选项,包括 Windows Runtime via C++(用于 Windows 8 开发)或 Microsoft Foundation Classes

【讨论】:

  • IMO MFC 不应该出现在任何人的候选名单上。是的,它就在那里,但有许多设计更好的选择。
  • 所以尽管我只打算为 Windows 开发,你仍然会建议我学习 Qt 吗?有趣的。你能解释一下为什么推荐Qt吗?这是否意味着存在缺点,但使用跨平台框架我真的不会错过任何特别或重要的东西?
  • @BenVoigt 无需比较列表中的项目。我真正需要的只是清单。
  • @BenVoigt MFC 确实在 VS2010 中得到了很多改进,至少 - 我仍然不喜欢它,并且认为它很疯狂,但如果你正在做纯 windows 开发,它有优势(良好的文档,完全支持几乎所有功能等)。
  • @SubaruTashiro Qt 非常好用,即使是“纯窗口”开发。我发现它是 C++ 最高效的 GUI 框架之一,并且有很多非常好的特性。
【解决方案2】:

通过使用跨平台框架,您将错过特定于平台的装饰,例如对Windows 7 Jump Lists 的编程控制。由于这些原因,它不会很像原生应用程序,而是像为另一个操作系统编写的应用程序的一个端口。在许多情况下,这无关紧要。

使用模板构建的现代 C++ 框架不会因为它是跨平台的而性能更差。您只会错过多个平台上不存在的功能。

【讨论】:

  • Windows 7 以外的跳转列表。你能想到另一种它确实重要的情况吗?你知道的,首先想到的是。
  • @SubaruTashiro:跳转列表只是一个例子。 Task Dialogs 是另一个。此外,还支持 Windows 8 App Store。我相信您可以概括为“Linux 和 Mac 上不可用的任何东西都可能不在框架中”。
  • 我会说,当您试图在一个非常繁忙的市场中竞争时,这些功能很重要,在这个市场上,每一盎司的抛光都很重要。如果您的软件有什么特别之处(特殊的数据处理,或连接到独特的设备),那么您可以使用跨平台框架做更多的事情。但是,如果您正在编写另一个即时消息应用程序,则需要润色。
【解决方案3】:

通常,跨平台框架的问题是特定于框架的。

例如wxWidgets - 它们速度很快,但没有太多可用的 GUI 类。文档不是很好,但更新得当。

GNome - 它被广泛使用,但需要大量运行时部署,内存使用量更大。

这两个都是 UI 框架。两者都是 GPL,因此您可以使用它。

Nokia Qt - 它是一个优秀的跨平台框架,它不仅仅是另一个 UI,而是一个用于跨平台开发的完整框架。然而,Qt 的问题在于元对象编译器(mod)。它是一种语言扩展。

我建议您选择 QT 作为您的下一个框架。它正在积极开发中,轻量级,最近开源,可在 LGPL lic 下使用。

【讨论】:

  • 技术性:不是诺基亚 Qt,因为 Digia 收购了 Qt。
  • 所以尽管我只打算为 Windows 开发,你仍然会建议我学习 Qt?有趣的。你能解释一下为什么推荐Qt吗?这是否意味着通过使用跨平台框架,我真的不会错过任何特别或重要的事情?
【解决方案4】:

就其他答案而言,Qt 是一个很棒的框架(并且有望在诺基亚中幸存下来)。

跨平台框架主要有两个缺点:性能(通常它们添加另一个在本机平台中不需要的层)当然是跨平台的,即通常不支持特定于目标平台的功能。使用 Qt,我从未将性能视为问题。 Qt 还引入了许多库,实际上扩展了您可以在 Windows 中本地执行的操作,第二点在这里也不是真正的缺点。

Qt 的唯一问题实际上是元对象编译器 (moc)。一开始,您会偶然发现一些奇怪的编译器错误,这些错误最终来自 moc。记住这一点,然后用谷歌搜索错误,你会习惯的。

【讨论】:

  • 也许我应该指出,我更喜欢 Qt Creator 作为 IDE 而不是 Eclipse 和 Visual Studio。
  • Re: 幸存的诺基亚:它不再属于诺基亚。他们上个月把它卖给了 Digia。
  • 很高兴听到。感谢您更新我。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-24
  • 2010-11-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多