2009-11-11 89 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