Condividi tramite


Macro di portabilità

Gli strumenti RPC ottengono il modello, la chiamata e l'indipendenza della convenzione di denominazione associando tipi di dati e tipi di funzione restituiti nei file stub generati e nei file di intestazione con definizioni specifiche per ogni piattaforma. Queste definizioni di macro garantiscono che tutti i tipi di dati e le funzioni che richiedono la designazione di __far siano specificati per quanto riguarda gli oggetti.

La figura seguente mostra le definizioni di macro che il compilatore MIDL si applica alle chiamate di funzione tra componenti RPC:

Diagramma che mostra le definizioni di macro MIDL si applica alle chiamate di funzione.

Le macro RPC sono definite come indicato di seguito.

Definizione Descrizione
__RPC_API Applicato alle chiamate effettuate dallo stub all'applicazione utente. Entrambe le funzioni si trovano nello stesso programma eseguibile.
__RPC_FAR Applicato alla definizione di macro standard per i puntatori. Questa definizione di macro deve essere visualizzata come parte della firma di tutte le funzioni fornite dall'utente.
__RPC_STUB Applicato alle chiamate effettuate dalla libreria di runtime al stub. Queste chiamate possono essere considerate private.
__RPC_USER Applicato alle chiamate effettuate dalla libreria di runtime all'applicazione utente. Questi superano il limite tra una DLL e un'applicazione.
RPC_ENTRY Applicato alle chiamate effettuate dall'applicazione o dallo stub alla libreria di runtime. Questa definizione di macro viene applicata a tutte le funzioni di runtime RPC.

Per collegare correttamente le librerie di runtime, gli stub e le routine di supporto di Microsoft RPC, alcune funzioni fornite dall'utente devono includere anche queste macro nella definizione della funzione. Usare la macro __RPC_API quando si definiscono le funzioni associate alla gestione della memoria, agli handle di associazione definiti dall'utente e all'attributo transmit_as e si usa la macro __RPC_USER quando si definisce la routine di run-down del contesto associata all'handle di contesto. Specificare le funzioni come:

__RPC_USER midl_user_allocate (...)

__RPC_USER midl_user_free (...)

__RPC_USER handletype_bind (...)

__RPC_USER handletype_unbind (...)

__RPC_USER tipo_to_local

__RPC_USER tipo_from_local

__RPC_USER type_to_xmit (...)

__RPC_USER tipo_from_xmit (...)

__RPC_USER tipo_free_local

__RPC_USER tipo_free_inst (...)

__RPC_USER tipo_free_xmit (...)

__RPC_USER context_rundown (...)

Nota

Tutti i parametri del puntatore in queste funzioni devono essere specificati usando la macro __RPC_FAR.

Requisiti

Requisito Valore
Client minimo supportato
Windows 2000 Professional [solo app desktop]
Server minimo supportato
Windows 2000 Server [solo app desktop]
Intestazione
Rpc.h