【问题标题】:Why c# can make program with GUI on android and iOS but c++ cannot? [closed]为什么c#可以在android和iOS上制作带有GUI的程序而c++不能? [关闭]
【发布时间】:2012-07-31 04:19:55
【问题描述】:

Mono touch 可以让 C# 在 iOS 和 android 上编译

但是为什么没有 C++ 的东西可以让 C++ 原生支持 iOS 和 android。

我个人认为 C++ 比 C# 更容易。

谁能告诉我为什么 C# 有跨平台的 Gui 而 C++ 没有。

【问题讨论】:

  • 我不想告诉你,但 C++ 比 C# 复杂得多。
  • Qt 框架 (qt.nokia.com) 可以使用 Necessitas (sourceforge.net/p/necessitas/home/necessitas) 实现 Android。它仍然是 alpha 质量的,但在 C++ 中肯定可以做到。
  • C++ 只有在使用标准库时才独立于平台。对于图形用户界面之类的东西,没有内置库。 C# 有一个非常广泛的库,在所有平台上都是相同的,它包括 GUI 部分。

标签: c# android c++ ios user-interface


【解决方案1】:

实际上,在 Android 上,您可以 develop applications completely in C++。您无法直接访问所有 J​​ava API,因此在某些情况下您可能仍需要一点 Java 代码。但是您可以直接访问 OpenGL ES、OpenSL ES、zlib 等。

至于 iOS.. 好吧,他们决定使用 Objective-C。到目前为止一切正常,但我知道,如果您来自纯 C/C++ 背景,学习曲线会有些小。至少 iOS 产品如今如此受欢迎这一事实意味着,为 ObjC 查找信息和学习材料不是任何问题。

【讨论】:

    【解决方案2】:

    C# 有一个标准化的 GUI 工具包 (.Net),而 C++ 没有。这是 C++ 在可预见的未来无法解决的问题,因为它违背了 C++ 的一些原则,在标准库方面需要性能和通用性。

    因此,由于 GUI 不是标准化的,C++ 委员会不太可能会追究这种可能使 C++ 在某些平台上变得非常奇怪的事情。

    另一方面,像 Qt 这样的独立框架可以做到这一点,但他们没有表现出这样的兴趣,主要是因为 Qt 无法在 iOS 上使用商业许可,因为合同限制了 Digia 的商业模式。苹果。

    【讨论】:

    • 这与 C# 的 UI 工具包无关。 Mono 绑定了 Android 和 iOS UI 工具包,而不是在 Android 或 iOS 上编写一些 C# UI。
    • 当我把 .Net 放在那里时,我就是这么说的。 Mono 在 Windows 上的行为类似于 .Net。请仔细阅读。
    • 没有。 Android 上的 Mono 不像 Windows 上的 .NET。它绑定到原生 Android 操作系统。与 iOS 相同。
    • 而且 .Net 在本机 Windows 上有绑定。这是一个隐含的想法。
    • 您能否详细说明 Digia 的限制条件? AFAIK 的主要问题是诺基亚对保持 Qt 跨平台的声誉不感兴趣(原因很明显)。 Digia 实际上致力于让 Qt 成为适用于 iOS、Android 和 Windows Phone 项目的可行框架。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-22
    • 2014-10-09
    • 2013-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-19
    相关资源
    最近更新 更多