Basistypen
Um die Probleme zu vermeiden, die implementierungsabhängige Datentypen auf verschiedenen Computerarchitekturen verursachen können, definiert MIDL eigene Basisdatentypen.
Basistyp | BESCHREIBUNG |
---|---|
Boolean | Ein Datenelement, das den Wert TRUE oder FALSE aufweisen kann. |
Byte | Ein 8-Bit-Datenelement, das garantiert ohne Änderung ü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 als signiert oder unsigniert deklariert werden kann, kann auch als _int64 bezeichnet werden. |
INT | Eine 32-Bit-Ganzzahl, die entweder als signiert oder unsigned deklariert werden kann. |
__int3264 | Ein Schlüsselwort (keyword), der einen integralen Typ angibt, der entweder über 32-Bit- oder 64-Bit-Eigenschaften verfügt. |
Lange | Ein Modifizierer für int , der eine 32-Bit-Ganzzahl angibt. Kann entweder als signiert oder nicht signiert deklariert werden. |
kurz | Eine 16-Bit-Ganzzahl, die entweder als signiert oder unsigned deklariert werden kann. |
klein | Ein Modifizierer für int , der eine 8-Bit-Ganzzahl angibt. Kann entweder als signiert oder nicht signiert 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-Schalter kompilieren. |
Die Headerdatei Rpcndr.h enthält Definitionen für die meisten dieser Basisdatentypen. Die Schlüsselwort (keyword) int wird erkannt und kann auf 32-Bit-Plattformen übertragen werden. Auf 16-Bit-Plattformen erfordert der Datentyp int 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 die 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.)