什么是mac的win32等价物?

Asp*_*ger 0 c macos winapi cocoa

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

模块1.您的第一个Windows程序

我对Mac API的外观很感兴趣.

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

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

and*_*abs 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,以编程方式执行所有操作很困难(但仍然可行).