Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在运行时获取指向Carbon API的过程指针_Api_Macos_Runtime_Macos Carbon - Fatal编程技术网

在运行时获取指向Carbon API的过程指针

在运行时获取指向Carbon API的过程指针,api,macos,runtime,macos-carbon,Api,Macos,Runtime,Macos Carbon,我有一个Mac应用程序,我必须根据MacOS10.4SDK构建,原因很多,我无法控制。考虑到我的应用程序的最低OS版本将是10.5。(我知道,我知道……但我不能给出比上述更多的细节来解释为什么会出现这种情况。) MacOS10.5SDK中有一个API,我在10.4SDK中找不到与之相当的API。知道我将在Mac OS>=10.5上运行,我如何在运行时访问FSMatchAliasBulk?首先,从Xcode帮助菜单中选择“开发者文档”,查看Xcode帮助中的“交叉开发工作原理”。在文档窗口中,键入

我有一个Mac应用程序,我必须根据MacOS10.4SDK构建,原因很多,我无法控制。考虑到我的应用程序的最低OS版本将是10.5。(我知道,我知道……但我不能给出比上述更多的细节来解释为什么会出现这种情况。)

MacOS10.5SDK中有一个API,我在10.4SDK中找不到与之相当的API。知道我将在Mac OS>=10.5上运行,我如何在运行时访问
FSMatchAliasBulk

首先,从Xcode帮助菜单中选择“开发者文档”,查看Xcode帮助中的“交叉开发工作原理”。在文档窗口中,键入“交叉开发是如何工作的”,然后单击return。在那里您将看到更多信息

我认为您需要做的是:加载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(....);
 }
 }