Basistypen
Um die Probleme zu verhindern, die implementierungsabhängige Datentypen auf verschiedenen Computerarchitekturen verursachen können, definiert MIDL eigene Basisdatentypen.
Basistyp | Beschreibung |
---|---|
booleschen | Ein Datenelement, das den Wert TRUE oder FALSE-aufweisen kann. |
Byte- | Ein 8-Bit-Datenelement wird garantiert ohne Änderung übertragen. |
Zeichen- | Ein 8-Bit-Nichtsigniertes Zeichendatenelement. |
doppelten | Eine 64-Bit-Gleitkommazahl. |
float- | Eine 32-Bit-Gleitkommazahl. |
handle_t | Ein primitives Handle, das zum Serialisieren von RPC-Bindung oder -Daten verwendet werden kann. |
Hyper- | Eine 64-Bit-Ganzzahl, die entweder als signierte oder nicht signierten deklariert werden kann, kann auch als _int64bezeichnet werden. |
int | Eine 32-Bit-Ganzzahl, die entweder als signierten oder nicht signiertendeklariert werden kann. |
__int3264 | Ein Schlüsselwort, das einen integralen Typ angibt, der entweder 32-Bit- oder 64-Bit-Eigenschaften aufweist. |
lange | Ein Modifizierer für int, der eine 32-Bit-Ganzzahl angibt. Kann entweder als signierte oder nicht signiertendeklariert werden. |
kurze | Eine 16-Bit-Ganzzahl, die entweder als signierten oder als nicht signiertedeklariert werden kann. |
kleine | Ein Modifizierer für int, der eine 8-Bit-Ganzzahl angibt. Kann entweder als signierte oder nicht signiertendeklariert werden. |
wchar_t | Breitzeichentyp, der als Microsoft-Erweiterung für IDL unterstützt wird. Daher ist dieser Typ nicht verfügbar, wenn Sie die /osf Switch kompilieren. |
Die Headerdatei Rpcndr.h stellt Definitionen für die meisten dieser Basisdatentypen bereit. Das Schlüsselwort int wird erkannt und kann auf 32-Bit-Plattformen übertragen werden. Auf 16-Bit-Plattformen erfordert die int Datentyp einen Modifizierer, z. B. kurzen oder langen, um die 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 typen verweisen, die aus Basistypen erstellt wurden. (Es gibt eine Ausnahme: Kontexthandles werden als void Typen definiert. Weitere Informationen finden Sie unter Kontexthandles.)