Bastyper
För att förhindra de problem som implementeringsberoende datatyper kan orsaka i olika datorarkitekturer definierar MIDL sina egna basdatatyper.
Bastyp | Beskrivning |
---|---|
boolesk | Ett dataobjekt som kan ha värdet TRUE eller FALSE. |
byte | Ett 8-bitars dataobjekt som garanterat överförs utan någon ändring. |
tecken | Ett 8-bitars dataobjekt med osignerade tecken. |
dubbla | Ett 64-bitars flyttalsnummer. |
flyttal | Ett 32-bitars flyttalsnummer. |
handle_t | Ett primitivt handtag som kan användas för RPC-bindning eller data serialisering. |
hyper | Ett 64-bitars heltal som kan deklareras som antingen signerade eller osignerade Kan även kallas _int64. |
int | Ett 32-bitars heltal som kan deklareras som antingen signerade eller osignerade. |
__int3264 | Ett nyckelord som anger en integrerad typ som har antingen 32-bitars eller 64-bitars egenskaper. |
lång | En modifierare för int som anger ett 32-bitars heltal. Kan deklareras som antingen signerad eller osignerad. |
kort | Ett 16-bitars heltal som kan deklareras som antingen signerade eller osignerade. |
liten | En modifierare för int som anger ett 8-bitars heltal. Kan deklareras som antingen signerad eller osignerad. |
wchar_t | Typ av brett tecken som stöds som ett Microsoft-tillägg till IDL. Därför är den här typen inte tillgänglig om du kompilerar med hjälp av /osf- växel. |
Rubrikfilen Rpcndr.h innehåller definitioner för de flesta av dessa basdatatyper. Nyckelordet int identifieras och kan överföras på 32-bitarsplattformar. På 16-bitarsplattformar kräver int datatyp en modifierare, till exempel kort eller lång, för att ange dess längd.
Även om void * * identifieras som en allmän pekartyp av ANSI C-standarden, begränsar MIDL dess användning. Varje pekare som används i en fjärr- eller serialiseringsåtgärd måste peka på antingen bastyper eller typer som konstruerats från bastyper. (Det finns ett undantag: kontextreferenser definieras som void typer. Mer information finns i Context Handles.)