cocoa - 保持传统 Carbon 代码的活力

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

Apple 已经取消了 64 位应用程序的 Carbon。我有一堆针对碳 UI 小部件的遗留代码,我想将它们保留一段时间。其中大部分都是插件和 bundle 的形式,必须与主机平台同步为 64 位。

苹果似乎做出的选择是扔掉所有遗留代码 并使用 Cocoa 重写。短期内这不会发生,因为 相同的遗留代码也与 PC 绑定(bind)相关联。

我正在考虑 3 个选项

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

(2) 使用 Cocoatron 作为新目标。从短期来看,将carbon 与cocotron 连接起来,从长远来看,可能会转换为mac 和pc 原生的cocoatron。 (引用:http://cocotron.org/)

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

我真正更喜欢的是第四个选项,例如 64 位的盗版副本 Apple 取消的 Carbon beta 版,或者明确打算的兼容性包 模拟碳。

最佳答案

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

此选项还有一个优点,即得到 Apple 的完全支持,并且 API 稳定且成熟。

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

Qt 是一个选项。然而,它的用户界面与 Mac 非常不一样。在 Mac 上使用 Qt 应用程序总是感觉像是一个快速移植而不是 native 应用程序,而且这一点不太可能改变。

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

关于cocoa - 保持传统 Carbon 代码的活力,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8614757/

相关文章:

cocoa - 是否可以将图像存储为 cocoa 中的字符串?

java - 32 位进程在 64 位系统上运行时是否需要更多内存?

vbscript - 无法在Windows 7 x64上的VB脚本中使用CreateObject

objective-c - 适用于 mac os 10.6 雪豹的 glib

python - 如何在 Snow Leopard 和其他 32 位/64 位问题上强制 Python 为 32 位

iphone - iOS 应用程序窗口未初始化

objective-c - 在 Objective-C 中,使用派生类的协议(protocol)可以是 "instantiated"吗?

objective-c - 拖放 - 是否可以获取 URL?

c++ - 是否可以安全地假设 64 位指针中的 16 位高位(2 位对我来说足够)未设置?

apache2 - 为什么apache禁止通过符号链接(symbolic link)访问?