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:
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 |
|