Basistypen

Um probleme zu vermeiden, die implementierungsabhängige Datentypen in verschiedenen Computerarchitekturen verursachen können, definiert MIDL eigene Basisdatentypen.

Basistyp BESCHREIBUNG
boolean Ein Datenelement, das den Wert TRUE oder FALSE haben kann.
Byte Ein 8-Bit-Datenelement, das garantiert ohne Änderungen übertragen wird.
char Ein 8-Bit-Datenelement ohne Vorzeichen.
Doppel Eine 64-Bit-Gleitkommazahl.
schweben Eine 32-Bit-Gleitkommazahl.
handle _ t Ein primitives Handle, das für die RPC-Bindung oder datenserialisierung verwendet werden kann.
Hyper Eine 64-Bit-Ganzzahl, die entweder mit Vorzeichen oder ohne Vorzeichen deklariert werden kann, kann auch als _ int64 bezeichnet werden.
int Eine 32-Bit-Ganzzahl, die als mit oder ohne Vorzeichen deklariert werden kann.
__int3264 Ein Schlüsselwort, das einen integralen Typ angibt, der entweder über 32-Bit- oder 64-Bit-Eigenschaften verfügt.
long Ein Modifizierer für int, der eine 32-Bit-Ganzzahl angibt. Kann als mit oder ohne Vorzeichen deklariert werden.
short Eine 16-Bit-Ganzzahl, die als mit oder ohne Vorzeichen deklariert werden kann.
klein Ein Modifizierer für int, der eine 8-Bit-Ganzzahl angibt. Kann als mit oder ohne Vorzeichen deklariert werden.
wchar _ t Breitzeichentyp, der als Microsoft-Erweiterung für IDL unterstützt wird. Daher ist dieser Typ nicht verfügbar, wenn Sie mit dem / Osf-Switch kompilieren.

Die Headerdatei Rpcndr.h enthält Definitionen für die meisten dieser Basisdatentypen. Das Schlüsselwort int wird erkannt und kann auf 32-Bit-Plattformen übertragen werden. Auf 16-Bit-Plattformen erfordert der int-Datentyp einen Modifizierer, z. B. short oder long, um seine Länge anzugeben.

Obwohl * * void vom ANSI C-Standard als generischer Zeigertyp erkannt wird, schränkt MIDL seine Verwendung ein. Jeder Zeiger, der in einem Remote- oder Serialisierungsvorgang verwendet wird, muss entweder auf Basistypen oder auf Typen verweisen, die aus Basistypen erstellt wurden. (Es gibt eine Ausnahme: Kontexthandles werden als void-Typen definiert. Weitere Informationen finden Sie unter Kontexthandles.)