什么是mac的win32等价物?

时间:2016-11-20 17:30:58

标签: c macos cocoa winapi

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

Module 1. Your First Windows Program

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

在做了一些阅读之后,我读了很多东西,比如XCode(环境),Cocoa Framework等。但是,我没有看到任何类似Win32 API的信息。

不是Apple没有基于Obective-C的低级C API,而只是普通的旧C?

1 个答案:

答案 0 :(得分:5)

您的链接指向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,但是用于将OS X前应用程序转换为OS X,因此不适合新的应用程序开发。事实上,我甚至不确定它是否已被支持了。

如果你想在普通C中编写OS X的GUI程序,你有两个选择:

  • 找到一个包装库
  • 放弃并学习Objective-C,它始终位于普通C之上

如果在线教程(包括Apple的官方教程)不适合您,那么关于Cocoa开发的Big Nerd Ranch书籍就是好的。请注意,他们以初学者为导向的书籍正在转换为Swift语言,但他们还有一本专门用于教授Objective-C的书。

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