Zahlen (WMI)
In MOF sind Zahlen Ziffern, die numerische Werte beschreiben. MOF bietet eine Vielzahl von Datentypen, die in die Automatisierung übersetzt werden, und ermöglicht es auch, dass diese Zahlen in unterschiedlichen Formaten vorliegen. In der folgenden Tabelle sind die numerischen Werte aufgeführt, die MOF unterstützt.
Datentyp | Automatisierungstyp | Beschreibung |
---|---|---|
VT_I2 | Signierte 8-Bit-Ganzzahl. |
|
sint16- | VT_I2 | Signierte 16-Bit-Ganzzahl. |
sint32- | VT_I4 | Signierte 32-Bit-Ganzzahl. |
sint64- | VT_BSTR | Signierte 64-Bit-Ganzzahl in Zeichenfolgenform. Dieser Typ folgt nach den Regeln des American National Standards Institute (ANSI) C hexadezimal oder dezimal. |
real32- | VT_R4 | 4-Byte-Gleitkommawert, der dem IEEE-Standard (Institute of Electrical and Electronics Engineers, Inc.) folgt. |
real64- | VT_R8 | 8-Byte-Gleitkommawert, der dem IEEE-Standard folgt. |
uint8- | VT_UI1 | Nicht signierte 8-Bit-Ganzzahl. |
uint16- | VT_I4 | Nicht signierte 16-Bit-Ganzzahl. |
uint32- | VT_I4 | Nicht signierte 32-Bit-Ganzzahl. |
uint64- | VT_BSTR | Nicht signierte 64-Bit-Ganzzahl in Zeichenfolgenform. Dieser Typ folgt nach ANSI C-Regeln hexadezimal oder dezimal. |
Obwohl der MOF-Code flexibel ist, treten beim Umgang mit der Automatisierung einige Änderungen auf:
Sie müssen 64-Bit-Ganzzahlen als Zeichenfolgen codieren.
Die Automatisierung unterstützt keinen 64-Bit-Integraltyp.
Automatisierungstypen entsprechen nicht immer der Bitgröße von MOF-Datentypen.
Automatisierung verwendet z. B. VT_I4, um einen nicht signierten 16-Bit-Wert zurückzugeben. Diese Diskrepanz besteht aufgrund von Problemen mit der Sign-Erweiterung. Wenn die Automatisierung VT_I2 anstelle von VT_I4 verwendet wird, scheint 65.536 der Wert 1 zu sein, was Typ- und Bereichsprobleme verursacht. Ebenso stellt die Automatisierung den uint32- Typ als VT_I4 dar, da kein größerer ganzzahliger Typ vorhanden ist, der uint32-enthalten soll.
Sie müssen keine Darstellung für 8-Bit-Numeraltypen ändern.
Automatisierung unterstützt VT_UI1, einen nicht signierten 8-Bit-Typ.
MOF unterstützt lange Konstanten. Sie deklarieren eine lange Konstante mithilfe einer einfachen Reihe von Ziffern mit einem optionalen negativen Vorzeichen. Eine lange Konstante darf die Größe der Variablen nicht überschreiten, die für die Aufbewahrung deklariert ist. Einige Beispiele für lange Konstanten sind 1000 und 12310.
MOF unterstützt auch alternative numerische Formate. In der folgenden Tabelle sind die Sonderzeichen aufgeführt, die Sie verwenden müssen, um hexadezimale, binäre und oktale Konstanten zu beschreiben.
Konstante | Sonderzeichen | Beispiel |
---|---|---|
Dezimal |
Nichts |
val = 65 |
Hexadezimal |
Präfix 0x |
val = 0x41 |
Oktal |
Führende 0 |
val = 0101 |
Binär |
Nachgestellt B |
val = 1000001B |
Sie können eine Gleitkommakonstante verwenden, um wissenschaftliche Notation und Bruchzahlen darzustellen, wie im folgenden Beispiel gezeigt:
3.14
-3.14
-1.2778E+02
WMI berücksichtigt Gleitkommakonstanten als VT_R8 Typen für die Automatisierung.
Im folgenden Beispiel werden Klassen- und Instanzdeklarationen beschrieben, die veranschaulichen, wie sie die einzelnen numerischen Datentypen zum Festlegen von Eigenschaften verwenden:
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;
};