2009-11-11 4 views
0

나는 이 내 컨트롤을 벗어나는 다양한 이유 때문에 Mac OS 10.4 SDK에 대해 빌드해야합니다. 내 응용 프로그램의 최소 OS 버전은 10.5가됩니다. (알아, 나도 알아 ...하지만 위의 이유보다 더 자세한 설명을 할 수 없다.)런타임에 Carbon API에 대한 proc 포인터 가져 오기

Mac OS 10.5 SDK 내에는 FSMatchAliasBulk이라는 API가 있습니다. 10.4 SDK에서 좋은 것을 찾으십시오. Mac OS> = 10.5 이상에서 실행된다는 것을 알고 있다면 런타임시 FSMatchAliasBulk에 어떻게 액세스 할 수 있습니까?

답변

1

먼저 Xcode 도움말에서 "개발자 설명서"를 선택하여 Xcode 도움말에서 "상호 개발 방법"을 확인하십시오. 문서 창에서 "상호 개발 방법"을 입력하고 리턴하십시오. 거기에 더 많은 정보가 나타납니다.

다음은 내가해야 할 일입니다. CoreServices 프레임 워크를로드 한 다음 Mac OS X 10.5에서 실행 중이라는 것을 알고 있으면 해당 기능 포인터를 가져옵니다 (Gestalt 기능 참조). 결정).

다음은 테스트되지 않은 샘플이지만, 올바른 방향으로 인도해야합니다

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

관련 문제