Tipi di base
Per evitare i problemi che i tipi di dati dipendenti dall'implementazione possono causare in architetture di computer diverse, MIDL definisce i propri tipi di dati di base.
Tipo base | Descrizione |
---|---|
boolean | Elemento di dati che può avere il valore TRUE o FALSE. |
byte | È garantito che un elemento dati a 8 bit venga trasmesso senza alcuna modifica. |
Char | Elemento dati carattere senza segno a 8 bit. |
double | Numero a virgola mobile a 64 bit. |
float | Numero a virgola mobile a 32 bit. |
handle_t | Handle primitivo che può essere usato per l'associazione RPC o la serializzazione dei dati. |
hyper | Un numero intero a 64 bit che può essere dichiarato come con segno o senza segno può essere definito anche _int64. |
int | Intero a 32 bit che può essere dichiarato come con segno o senza segno. |
__int3264 | Parola chiave che specifica un tipo integrale con proprietà a 32 bit o a 64 bit. |
Lungo | Modificatore per int che indica un numero intero a 32 bit. Può essere dichiarato come firmato o senza segno. |
short | Intero a 16 bit che può essere dichiarato come con segno o senza segno. |
Piccolo | Modificatore per int che indica un numero intero a 8 bit. Può essere dichiarato come firmato o senza segno. |
wchar_t | Tipo di caratteri wide supportato come estensione Microsoft per IDL. Pertanto, questo tipo non è disponibile se si compila usando l'opzione /osf . |
Il file di intestazione Rpcndr.h fornisce definizioni per la maggior parte di questi tipi di dati di base. La parola chiave int viene riconosciuta ed è trasmessa su piattaforme a 32 bit. Nelle piattaforme a 16 bit il tipo di dati int richiede un modificatore, ad esempio short o long, per specificarne la lunghezza.
Anche se void * * viene riconosciuto come tipo di puntatore generico dallo standard ANSI C, MIDL limita l'utilizzo. Ogni puntatore usato in un'operazione remota o di serializzazione deve puntare a tipi di base o tipi costruiti da tipi di base. Esiste un'eccezione: gli handle di contesto vengono definiti come tipi void . Per altre informazioni, vedere Handle di contesto.