【问题标题】:What is the win32 equivalent for mac?mac的win32等价物是什么?
【发布时间】:2017-04-04 01:49:57
【问题描述】:

以下链接显示了有关 Windows API 工作原理的示例:

Module 1. Your First Windows Program

我对 Mac API 的外观非常感兴趣。

阅读后,我阅读了很多东西,比如 XCode(环境)、Cocoa 框架等。但是,我没有看到任何关于 Win32 API 之类的信息。

Apple 不是有一个不基于 Obective-C 而只是简单的旧 C 的低级 C API 吗?

【问题讨论】:

  • OS X 实现了 POSIX,便携式操作系统接口。你可能想找那个。

标签: c macos cocoa winapi


【解决方案1】:

您的链接指向 Windows 的 GUI 组件教程。在这种情况下,OS X 的等价物确实是 Cocoa 框架,它由 Foundation 和 AppKit 库组成,它们都是 Objective-C 库。

Cocoa 的控制绘图对于应用程序来说完全是本地的。因此,使用控件构建应用程序的唯一方法是使用 Objective-C。没有什么能阻止您在此之上构建 C API;类似的策略已被用于构建 Qt 等库或 Python 和 Ruby 等语言的绑定。

OS X 中没有普通的 C GUI API。有一些低级 API(Quartz 图形框架的一部分,也称为 Core Graphics API)用于处理窗口管理器以打开顶级窗口,但这些要么非常复杂,要么完全没有记录。即使这样,您也将负责自己进行所有控制和输入处理。 更新 构建应用程序的一些基本设施也可通过 C API 获得,即 Core Foundation、Core Graphics、Core Text 和 Grand Central Dispatch。但是这些仍然不足以使用 Cocoa; Cocoa 就是建立在它们之上的。

还有 Carbon API,它是一个 C API,但旨在将 pre-OS X 应用程序过渡到 OS X,因此不适合新的应用程序开发。事实上,我什至不确定它是否已被支持。

因此,如果您想用纯 C 语言为 OS X 编写 GUI 程序,您有两种选择:

  • 查找包装库
  • 放弃并学习 Objective-C,它无论如何都位于普通 C 之上

如果在线教程(包括 Apple 的官方教程)不适合您,Big Nerd Ranch 有关 Cocoa 开发的书籍是不错的选择。请注意,他们面向初学者的书籍正在过渡到 Swift 语言,但他们还有一本专门用于教授 Objective-C 的单独书籍。

您还需要知道,OS X 应用程序几乎专门使用名为 Interface Builder 的图形设计器来设计其用户界面,类似于 Visual Studio 中的表单设计器。使用 Windows API,您仍然可以摆脱通过代码做事,而且很多人都这样做;在 OS X 中,以编程方式完成所有事情都很困难(但仍然可能)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-03
    • 1970-01-01
    • 2014-05-08
    • 2014-06-12
    相关资源
    最近更新 更多