Freigeben über


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.)