Čísla (WMI)
V MOF jsou čísla číslic, které popisují číselné hodnoty. MOF poskytuje celou řadu datových typů, které se překládají do služby Automation, a také umožňuje, aby tato čísla byla v různých formátech. Následující tabulka uvádí číselné hodnoty, které MOF podporuje.
Datový typ | Typ automatizace | Popis |
---|---|---|
sint8 | VT_I2 | Podepsané 8bitové celé číslo. |
sint16 | VT_I2 | Podepsané 16bitové celé číslo. |
sint32 | VT_I4 | Podepsané 32bitové celé číslo. |
int64 | VT_BSTR | Podepsané 64bitové celé číslo ve formuláři řetězce. Tento typ se řídí šestnáctkovým nebo desetinným formátem podle pravidel C (American National Standards Institute). |
real32 | VT_R4 | Hodnota 4 bajtů s plovoucí desetinou čárkou, která se řídí standardem IEEE (Institute of Electrical and Electronics Engineers, Inc. |
real64 | VT_R8 | Hodnota 8 bajtů s plovoucí desetinou čárkou, která se řídí standardem IEEE. |
uint8 | VT_UI1 | Celé číslo bez znaménka |
uint16 | VT_I4 | Celé číslo bez znaménka. |
uint32 | VT_I4 | Celé číslo bez znaménka. |
uint64 | VT_BSTR | 64bitové celé číslo bez znaménka ve formuláři řetězce Tento typ se řídí šestnáctkovým nebo desítkovým formátem podle pravidel ANSI C. |
I když je kód MOF flexibilní, při práci se službou Automation dochází k nějakým změnám:
64bitové celá čísla musíte kódovat jako řetězce.
Automatizace nepodporuje 64bitový celočíselný typ.
Typy automatizace vždy neodpovídají datovým typům MOF v bitové velikosti.
Automation například používá VT_I4 k vrácení 16bitové hodnoty bez znaménka. Tato nesrovnalost existuje kvůli problémům s rozšířením přihlašování. Pokud služba Automation místo VT_I4 použila VT_I2, zdá se, že hodnota 65 536 je hodnota 1, což způsobuje problémy s typem a rozsahem. Podobně Automation představuje typ uint32 jako VT_I4, protože neexistuje žádný větší celočíselnou typ, který by měl obsahovat uint32.
U 8bitových typů číslic nemusíte měnit žádné reprezentace.
Automatizace podporuje VT_UI1, nepodepsaný 8bitový typ.
MOF podporuje dlouhé konstanty. Deklarujete dlouhou konstantu pomocí jednoduché řady číslic s volitelným záporným znaménkem. Dlouhá konstanta nesmí překročit velikost proměnné, která je deklarována tak, aby ji držela. Některé příklady dlouhých konstant jsou 1000 a 12310.
MOF také podporuje alternativní číselné formáty. Následující tabulka uvádí speciální znaky, které musíte použít k popisu šestnáctkových, binárních a osmičkových konstant.
Konstanta | Speciální znak | Příklad |
---|---|---|
Desetinný |
Žádný |
val = 65 |
Šestnáctkový |
Předpona 0x |
val = 0x41 |
Osmičkový |
Úvodní 0 |
val = 0101 |
Binární |
Koncová B |
val = 10000001B |
Konstantu s plovoucí desetinnou čárkou můžete použít k reprezentaci vědeckého zápisu i zlomků, jak je znázorněno níže:
3.14
-3.14
-1.2778E+02
Rozhraní WMI považuje konstanty s plovoucí desetinou čárkou za typy VT_R8 pro automatizaci.
Následující příklad popisuje deklarace třídy a instance, které ilustrují použití jednotlivých číselných datových typů k nastavení vlastností:
Class NumericDataClass
{
[key] uint8 Duint8;
SInt8 Dchar;
UInt16 Dtword;
Sint16 Dinst16;
UInt32 Ddword;
Sint32 Dinst1;
Sint32 Dinst2;
Sint32 Dinst3;
Sint32 Dinst4;
Sint32 Dinst5;
Real32 Dfloat;
Real64 Ddouble1;
Real64 Ddouble2;
};
instance of NumericDataClass
{
Duint8 = 122;
Dchar = -128;
Dtword = 30;
Dinst16 = -1445;
Ddword = 6987777;
Dinst1 = -455589;
Dinst2 = 23;
Dinst3 = 03; // Base 8
Dinst4 = 0xFe; // Base 16
Dinst5 = 11b; // Base 2
Dfloat = 3.1478;
Ddouble1 = 99987.3654;
Ddouble2 = 2.3e-2;
};