Zahlen (WMI)
In MOF sind Zahlen Ziffern, die numerische Werte beschreiben. MOF bietet eine Vielzahl von Datentypen, die in Automation ü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 |
---|---|---|
sint8 | VT_I2 | Ganze 8-Bit-Zahl mit Vorzeichen. |
sint16 | VT_I2 | Ganze 16-Bit-Zahl mit Vorzeichen. |
sint32 | VT_I4 | Ganze 32-Bit-Zahl mit Vorzeichen. |
sint64 | VT_BSTR | Ganze 64-Bit-Zahl mit Vorzeichen in Zeichenfolgenform. Dieser Typ folgt dem Hexadezimal- oder Dezimalformat gemäß den C-Regeln des American National Standards Institute (ANSI). |
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 | Ganze 8-Bit-Zahl ohne Vorzeichen. |
uint16 | VT_I4 | Ganze 16-Bit-Zahl ohne Vorzeichen. |
uint32 | VT_I4 | Ganze 32-Bit-Zahl ohne Vorzeichen. |
uint64 | VT_BSTR | Ganze 64-Bit-Zahl mit Vorzeichen in Zeichenfolgenform. Dieser Typ folgt dem Hexadezimal- oder Dezimalformat gemäß den ANSI C-Regeln. |
Obwohl der MOF-Code flexibel ist, treten bei der Automatisierung einige Änderungen auf:
Sie müssen 64-Bit-Ganzzahlen als Zeichenfolgen codieren.
Automatisierung unterstützt keinen 64-Bit-Integraltyp.
Automatisierungstypen entsprechen nicht immer in der Bitgröße den MOF-Datentypen.
Automatisierung verwendet beispielsweise VT_I4, um einen 16-Bit-Wert ohne Vorzeichen zurückzugeben. Diese Diskrepanz besteht aufgrund von Problemen mit der Sign-Erweiterung. Wenn Automatisierung VT_I2 anstelle von VT_I4 verwendet, scheint 65.536 der Wert 1 zu sein, was zu Typ- und Bereichsproblemen führt. Ebenso stellt Automation den Typ uint32 als VT_I4 dar, da kein größerer ganzzahliger Typ vorhanden ist, der uint32 enthält.
Sie müssen keine Darstellung für 8-Bit-Zahlentypen ändern.
Automatisierung unterstützt VT_UI1, einen 8-Bit-Typ ohne Vorzeichen.
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, die deklariert wird, um sie zu enthalten, nicht überschreiten. 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 |
---|---|---|
Decimal |
Keine |
val = 65 |
Hexadezimal |
0x prefix |
val = 0x41 |
Oktal |
Zeilenabstand 0 |
val = 0101 |
Binär |
Nachstellen B |
val = 1000001B |
Sie können eine Gleitkommakonstante verwenden, um die wissenschaftliche Notation sowie Brüche darzustellen, wie im Folgenden gezeigt:
3.14
-3.14
-1.2778E+02
WMI betrachtet Gleitkommakonstanten als VT_R8 Typen für die Automatisierung.
Im folgenden Beispiel werden Klassen- und Instanzdeklarationen beschrieben, die veranschaulichen, wie die einzelnen numerischen Datentypen zum Festlegen von Eigenschaften verwendet werden:
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;
};