在移植之前我们需要了解不同的目标平台,学习不同平台下编程的基础知识。Mac OS X系统是基于BSD Unix的内核环境,支持Standard C++ Library,类似fopen、fread、fwrite、stl函数及其他函数在Mac OS X中也可使用。另外,在Win32 API和BSD API之间还存在一对一映射:CreateFile对应open、ReadFile对应read、WriteFile对应write、DeviceIOControl对应ioctl、CloseFile对应close等等。
<!--[if !supportLists]-->l <!--[endif]-->工程类型
大的工程项目中一般会有多个工程文件,在移植的时候我们也希望保留原来的工程组织结构,所以一般是建立和原工程对应的工程文件。在Windows平台我们可以用vc++创建动态链接库(.dll)、静态库(.lib)、可执行文件(.exe)等工程类型,对应在Mac平台我们可以用xcode IDE创建动态链接库(.dylib)、静态库(.a)、可执行文件等类型的工程。
<!--[if !supportLists]-->l <!--[endif]-->数据类型
Mac平台基本数据类型关键字与windows上平台上有差别,所以移植的过程中我们要注意用对应的关键字进行替换。如LONG、ULON DWORD等等,直接编绎会报错,我们可以在windows上找到原始的定义,然后再找到Mac平台对应的类型。一般不要在原文件直接替换,最好定义成宏: