【问题标题】:Keeping legacy Carbon code alive让遗留的 Carbon 代码保持活力
【发布时间】:2011-12-23 10:11:39
【问题描述】:

Apple 已经为 64 位应用程序淘汰了 Carbon。我有一堆针对碳 UI 小部件的遗留代码,我希望这些小部件能够存活一段时间。其中大部分是插件和捆绑包的形式,必须与它们的主机平台同步 64 位。

Apple 似乎假设的选择是丢弃所有遗留代码 并使用 Cocoa 重写。这不会在短期内发生,如果仅仅是因为 相同的遗留代码也绑定到 PC 绑定。

我正在考虑 3 个选项

(1) 深入可可,创建支持小子集的兼容包 我真正需要的碳。

(2) 使用 Cocoatron 作为新目标。在短期内桥碳到 cocotron,从长远来看,可能会转换为 mac 和 pc 的 cocoatron 原生。 (参考:http://cocotron.org/

(3) 使用 QT 作为新目标。见选项 (2)。 (参考:http://qt.nokia.com/

我真正喜欢的是第四个选项,例如 64 位的盗版副本 Apple杀死的Carbon beta,或明确意图的兼容性包 模仿碳。

【问题讨论】:

  • 要给出一个不完全笼统的答案,我们需要更多细节。遗留代码有什么作用?它是什么类型的应用程序?有链接可以让我们了解更多吗?

标签: cocoa 64-bit osx-snow-leopard macos-carbon


【解决方案1】:

我建议您选择选项 1。为您的代码创建一个 Cocoa UI 包装器可能不会像您想象的那么复杂。创建跨平台应用程序的一种常见方法是使用跨平台 C++ 创建大部分应用程序,并将 Cocoa/Objective-C++ 用于 Mac UI,并使用其中一个 Windows API 用于 Windows UI。

这个选项还有一个优点是它得到了Apple的全面支持,并且API稳定成熟。

Cocotron 是一个不错的想法,但目前它还不够成熟(在我看来),无法提供强大的跨平台解决方案。我知道它有成功,但样本量很小。

Qt 是一个选项。但是,它的 UI 非常不像 Mac。在 Mac 上使用 Qt 应用程序总是感觉像是一个快速移植而不是原生应用程序,而且这不太可能改变。

“盗版 Carbon 运行时”只是一种幻想,根本没有办法让它可靠地工作,也绝对没有机会分发它。您将需要找到其他方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-07
    • 2012-09-08
    • 1970-01-01
    • 1970-01-01
    • 2011-02-06
    • 1970-01-01
    • 2015-12-09
    相关资源
    最近更新 更多