2012-12-27 180 views
1

我在使用xcode的mac上,我已经在C和C++中编程了一段时间,但是,我不知道如何通过简单的文本输入/输出程序,我一直在写。我理解这些原则,但通过基础知识证明很难弄明白。在Mac上使用C或C++进行GUI编程入门

我听说像ct或gtk + for C++这样的库是最好的选择,但大多数书籍和教程都专注于Windows或Linux的编程,而没有一个显示这些库如何工作。我想真正理解幕后发生的事情;我想了解图形用户界面如何在尽可能最低的层次上工作,即使在装配和机器代码级别。有谁知道从哪里开始呢?谢谢。

+2

你是说你想使C/C++应用程序的Mac吗?或其他平台?如果仅用于Mac,那么学习Objective-C确实会有所帮助。它的确与C不同。最难的部分是学习所有的API,但Apple有非常好的文档。 – Josiah

+0

我想我现在可能会这样做,但是如果我最终想为其他操作系统编程,您会提出什么建议? –

+0

另外,我仍然想在较低的层面上理解它。 –

回答

1

如果您使用OpenGL,您可以非常低级地了解图形硬件如何生成各种UI元素。当然,你必须自己完成所有这些工作。从设计各种UI项目到创建像素缓冲区和纹理映射以及使用帧缓冲区。这部分也是跨平台的。

您还可以自己处理用户交互和接口逻辑(轮询鼠标/键盘等)。您可能需要一段时间来编写更复杂的小部件,但至少您可以自己完成这一切,这将使您对GUI工具包的工作方式有相当的了解。

GLUT自带大多数Mac,并为您提供最基本的要素让你上手(你至少可以得到一个窗口:))

https://developer.apple.com/library/mac/#samplecode/glut/Introduction/Intro.html

过剩库支持以下功能:

  1. 用于OpenGL渲染的多个窗口。
  2. 回调驱动的事件处理。
  3. “空闲”例程和定时器。
  4. 生成各种实体和线框对象的实用程序例程。
  5. 支持位图和笔画字体。
  6. 其他窗口管理功能。

http://www.opengl.org/resources/libraries/glut/glut_downloads.php

+0

很好的答案,OpenGL上有没有好的书籍或教程? –

+0

我更新了我的答案一点。以下是一些资源: 1. [Xcode GLUT教程](http://cit.cs.dixie.edu/cs/3600/xcode-glut/index.html) 2. [GLUT基础知识](http: //www.gamedev.net/page/resources/_/technical/opengl/basics-of-glut-r1680) 3. [GLUT Drawing](http:// davidwparker。COM/2011/08/20/OpenGL的截屏-6-拉入-3D-部分-1-过剩的对象/) 注意,可可为GLUT实际上是可选的,可以在普通的C或C++创建的GUI。 – omygaudio

+0

非常感谢,这真的很有帮助。 –