CoreFoundation库是Apple的基础库之一,定义了一些变量类型等等信息和一些基础方法,包括plist处理等等内容。文中提供一种方法直接调用CoreFoundation.dll中的导出函数实现功能。
CoreFoundation库是Apple的基础库之一,定义了一些变量类型等等信息和一些基础方法,包括plist处理等等内容。Windows上可以选择偷懒使用Apple Mobile Device中的CoreFoundation.dll。
本文基于 http://www.yonsm.net/post/507 的文章,感谢Yoasm提供的思路。
由于Yoasm的Blog系统换成了WP,因此附件没了,另外说的并不详细,因此我就发一下自己的编译过程。
首先是提取CoreFoundation.lib。方法如下:
Setp 1: 下载 http://sourceforge.net/projects/mingw/files/MinGW/Extension/pexports/pexports-0.44-1/ 用于提取def文件
Setp 2: 执行 pexports CoreFoundation.dll > CoreFoundation.def
Setp 3: 需要在Visuall Studio Command Prompt中执行lib /def:CoreFoundation.def /out:CoreFoundation.lib
然后是准备头文件,这个比较简单:从 http://opensource.apple.com/ 中下载CF对应压缩包,只保留*.h文件即可
程序中可使用如下方法:
#include "CoreFoundation/CoreFoundation.h"
#pragma comment(lib,"CoreFoundation.lib")
但是这里有两个问题:
1. VS缺少Cxx标准头,这些标准头可以在 http://www.opensource.apple.com/source/xnu/xnu-1456.1.26/EXTERNAL_HEADERS/ 获得
2. CoreFoundation有一个较大的库依赖,具体DLL列表如下:
------------------------------
文章的授權使用CC BY-ND2.5協議。凡是標示“轉載”的文章,均來源於網絡並儘可能標註作者。如果有侵犯您的權益,請及時聯繫刪除或者署名、授權。
Gtalk/Email: cmd4shell [at] gmail.com