Pergunta

Eu tenho um aplicativo do Mac que eu deve construção contra o Mac OS 10.4 SDK por várias razões fora do meu controle. Tendo em conta que a versão do SO mínimo da minha aplicação será de 10,5. (Eu sei, eu sei ... mas eu não posso dar mais detalhes do que o anterior para justificar porque é esse o caso.)

No Mac OS 10.5 SDK é uma API, FSMatchAliasBulk , para o qual eu não posso encontrar um bom equivalente em 10,4 SDK. Sabendo que eu vou estar em execução no Mac OS> = 10,5, como posso obter acesso ao FSMatchAliasBulk em tempo de execução?

Foi útil?

Solução

Primeiro, veja "Como cruzadas Desenvolvimento Works" em sua Xcode Ajuda, selecionando "desenvolvedor Documentação" no menu Xcode Ajuda. Na janela de documentação, tipo "Como funciona o Cross-desenvolvimento" e retorno hit. Lá você vai ver mais informações.

E aqui está o que eu acho que você precisa fazer: carregar o quadro CoreServices e, em seguida, obter o ponteiro de função para essa função, se você sabe que você está rodando no Mac OS X 10.5 (confira a funcionalidade Gestalt para determinar isso).

Aqui é um exemplo que não é testado, mas deve levá-lo na direção certa:

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(....);
 }
 }
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top