2009-11-11 85 views
0

获得一个进程指针碳API我有一个苹果的应用程序,我必须筑起了Mac OS 10.4 SDK我无法控制的各种原因。鉴于我的应用程序的最低操作系统版本将为10.5。 (我知道,我知道......但我不能给出比上述更多的细节来证明为什么会出现这种情况。)在运行时

在Mac OS 10.5 SDK中有一个API,FSMatchAliasBulk,我不能在10.4 SDK中找到一个很好的等价物。知道我将在Mac OS> 10.5上运行,我如何在运行时访问FSMatchAliasBulk

回答

1

,先看看“如何交叉开发工程”,在从Xcode的帮助菜单中选择“开发者文档”您的Xcode帮助。在文档窗口中,输入“How Cross-Works Works”并返回。在那里你会看到更多的信息。

下面是我认为您需要做的:加载CoreServices框架,然后获取该函数的函数指针,如果您知道您在Mac OS X 10.5上运行(请检查完整性功能以确定)。

这里是一个未经测试的样本,而应该引领你在正确的方向:

CFBundleRef systemBundle = NULL; 

short result = LoadFrameworkBundle(CFSTR("CoreServices.framework"), &systemBundle); 

if (result == 0) { 
typedef OSStatus (FSMatchAliasBulkProcPtr) (const FSRef*, unsigned long, AliasHandle, short*, FSRef*, Boolean*, FSAliasFilterProcPtr, void*); 

FSMatchAliasBulkProcPtr myFSMatchAliasBulk = (FSMatchAliasBulkProcPtr) CFBundleGetFunctionPointerForName(systemBundle, CFSTR("FSMatchAliasBulk")); 

if (myFSMatchAliasBulk) { 
// call FSMatchAliasBulk 
    OSStatus status = myFSMatchAliasBulk(....); 
} 
} 
+0

完美,谢谢! – fbrereto 2009-11-11 21:35:31