Auf Englisch lesen

Freigeben über


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;
 };