Macros de portabilidade
As ferramentas RPC obtêm independência de modelo, chamada e convenção de nomenclatura associando tipos de dados e tipos de retorno de função nos arquivos stub gerados e arquivos de cabeçalho com definições específicas para cada plataforma. Essas definições de macro garantem que todos os tipos de dados e funções que exigem a designação de __far sejam especificados quanto aos objetos.
A figura a seguir mostra as definições de macro que o compilador MIDL aplica a chamadas de função entre componentes RPC:
As macros RPC são definidas da seguinte maneira.
Definição | Descrição |
---|---|
__RPC_API | Aplicado a chamadas feitas pelo stub para o aplicativo de usuário. Ambas as funções estão no mesmo programa executável. |
__RPC_FAR | Aplicado à definição de macro padrão para ponteiros. Essa definição de macro deve aparecer como parte da assinatura de todas as funções fornecidas pelo usuário. |
__RPC_STUB | Aplicado a chamadas feitas da biblioteca em tempo de execução para o stub. Essas chamadas podem ser consideradas privadas. |
__RPC_USER | Aplicado a chamadas feitas pela biblioteca em tempo de execução para o aplicativo do usuário. Eles cruzam o limite entre uma DLL e um aplicativo. |
RPC_ENTRY | Aplicado a chamadas feitas pelo aplicativo ou stub para a biblioteca em tempo de execução. Essa definição de macro é aplicada a todas as funções de tempo de execução RPC. |
Para vincular corretamente com as bibliotecas de tempo de execução, stubs e rotinas de suporte do Microsoft RPC, algumas funções fornecidas pelo usuário também devem incluir essas macros na definição da função. Use a macro __RPC_API quando você definir as funções associadas ao gerenciamento de memória, identificadores de associação definidos pelo usuário e o atributo transmit_as e usar a macro __RPC_USER ao definir a rotina de execução de contexto associada ao identificador de contexto. Especifique as funções como:
-
__RPC_USER midl_user_allocate(...)
-
__RPC_USER midl_user_free(...)
-
__RPC_USER handletype_bind(...)
-
__RPC_USER handletype_unbind(...)
-
tipo __RPC_USER_to_local
-
tipo __RPC_USER_from_local
-
__RPC_USER type_to_xmit(...)
-
__RPC_USER tipo_from_xmit(...)
-
tipo __RPC_USER_free_local
-
__RPC_USER tipo_free_inst(...)
-
__RPC_USER tipo_free_xmit(...)
-
__RPC_USER context_rundown(...)
Observação
Todos os parâmetros de ponteiro nessas funções devem ser especificados usando a macro __RPC_FAR.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte |
Windows 2000 Professional [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte |
Windows 2000 Server [somente aplicativos da área de trabalho] |
Cabeçalho |
|