3.5 问题与解答

问:有了 MFC,还可以使用 Qt,我还有学习 Windows API 编程的必要吗?

答:应用 Windows API 编程时,要依据在前面讲解的基本步骤,而且要详细考虑到对 可能接收到的消息的具体处理。应用 Windows API 编程是可视化编程的基础,不像直接利

用 MFC 编程。利用 MFC 编程时,部分框架的代码是由该类库自动生成的, MFC 自己定义了一套编程模式,并且对自己实现的机制隐藏的比较深,用户必须遵守才不致出现问题; Qt 与 MFC 类似,它也是一套类库,用以帮助开发者快速构建应用,但是 Qt 使用标准 C++,并且做了扩展,它同样为使用者封装了很多底层的机制,但当你需要深入的开发一些功能时,你 仍然需要对本地平台有深入的了解;而利用 Windows API 函数进行编程,所有的代码需要 用户自己完成,虽然编写程序比较繁杂,但能从根本上理解可视化编程的体系。所以,无论你是使用 MFC 还是 Qt 类库,都需要掌握 Windows API 编程。

问:Mac OS X 与 Linux 的异同

答:这个问题还是很有必要说一下,事实上很多使用 Mac OS X 的朋友也发现了,如果 你很熟悉 Linxu 下的命令行操作,在 Mac 的终端下也会一样的控制自如,其重要的原因之 一就是两个操作系统确实有密切的联系。

简单说,Mac OS X 是在 BSD 系统的基础上发展起来的,可以叫做 Darwin BSD,是基于 DarwinBSD 的类 UNIX 发行版,所以它的架构是类似 Linux 的。但是它并不开源, 借助于与 UNIX 的亲缘关系,它同样也可以使用大量的 GNU 的开源软件

linux 和 MacOS 是同一源头 ,都是属于类 UNIX 系统家族 。

问:我刚入手了 MAC,想在上面编程,可是听说 MAC 上的写程序就是相对很弱了,找了 很久也没找到 VC,VB 什么的,真的这么难吗?

答:不是这样的,我想你首先要了解的是, MAC OS X 是类 Unix 系统,所以在它上面编 程与在 Linux 上是类似的,但也有一些区别 ,所以 Unix/Linux 上的编程工具通常都能在 Mac 上使用。最开心的就是你同样可以使用 Qt。在 Mac 上你可以编写几乎所有的高级编程 语言程序, 如 C, C++, Cocoa, Java, Fortran, python, ruby,等等。喜欢手写代码的话, 你可以使用 gcc/g++编译器,;喜欢用集成开发环境的话, 你可以用 Xcode + Interface Builder, 都是免费的。慢慢的,你会发现在 Mac 下的编程并不比 Windows 上弱,甚至某些 方面更方便、更强大。

另外要指出的是,Microsoft, Visual Studio 是 Windows 平台专属的 IDE,是商业授 权的产品,并且不能跨平台使用,你在 Mac 上是找不到它的。

问:Xcode 是不是只能在 Mac 上运行,Windows 上能不能用?要学编程的话是不是只用 学 C++就行了?

答:Xcode 只能在 Mac 上运行,但写出来的程序可以在 Mac 上运行,也能运行在 iPhone 上。

Xcode 支持多种语言,例如 C/C++/Java/AppleScript Studio 等,你还可以去另装其他 语言的支持,如 Pascal。但是用 Xcode 编程,语言方面的最佳选择是 Objective-C,它是 苹果 Cocoa 架构应用程序的所谓“母语”。

学习什么语言并不是十分重要,关键是要掌握编程的基本原理,熟练使用一种语言如 C++后,有时间再学习其它的语言,就会很快的触类旁通了。

问:请推荐几个比较好的讨论 Mac 编程的中文论坛?

答:关于 Mac 的综合性的论坛还是不少的,但大多数很少涉及编程开发的话题 ,这其 中的中文论坛更是少见。以下论坛还不错,在线人数很多,但是繁体中文的 ,供你参考。

问:在 Mac 上编程的话,我是要侧重掌握 Carbon 还是 Cocoa 呢?

答:Carbon 主要是为 os 9 到 os x 过渡的应用所采用的 C 和 C++环境,并非面向对 象。carbon 应用能在 os 9 和 x 都能运行。但随着 os x 的出现,使用 carbon 编程的人正在 逐渐减少。

Cocoa 是比较先进的 OOP 环境,可以写较少的程序编出较复杂的应用。应用语言主要是 Objective-C 或标准 Java,也可以使用其它语言。它也是一种事件驱动的应用平台,是特别 为 Mac OS X 设计的一套面向对象的 Framework,因此无法在 Mac OS 8/9 上面运行。

但是,Carbon API 所写的老程序移植到 Mac OS X 会相对容易,而仅仅在部分情况 下,Mac OS X 下的使用 Carbon API 的程序可以不加修改在 Mac OS 8/9 上面运行

所以,我推荐你重点掌握 Cocoa,但是了解和学习一下 Carbon 上的知识与应用并没有 害处。