Delen via


Getallen (WMI)

In MOF zijn getallen cijfers die numerieke waarden beschrijven. MOF biedt verschillende gegevenstypen die worden omgezet in Automation en waarmee deze getallen in verschillende indelingen kunnen worden weergegeven. De volgende tabel bevat de numerieke waarden die MOF ondersteunt.

Gegevenstype Automation-type Beschrijving
sint8 VT_I2 Ondertekend 8-bits geheel getal.
sint16 VT_I2 Ondertekend 16-bits geheel getal.
sint32 VT_I4 Ondertekend 32-bits geheel getal.
sint64- VT_BSTR Ondertekend 64-bits geheel getal in tekenreeksvorm. Dit type volgt de hexadecimale of decimale notatie volgens de regels van het American National Standards Institute (ANSI).
real32- VT_R4 4-byte drijvende-kommawaarde die volgt op de IEEE-standaard (Institute of Electrical and Electronics Engineers, Inc. ).
real64- VT_R8 8-byte drijvende-kommawaarde die volgt op de IEEE-standaard.
uint8- VT_UI1 Niet-ondertekend 8-bits geheel getal.
uint16- VT_I4 Niet-ondertekend 16-bits geheel getal.
uint32- VT_I4 Niet-ondertekend 32-bits geheel getal.
uint64- VT_BSTR Niet-ondertekend 64-bits geheel getal in tekenreeksvorm. Dit type volgt de hexadecimale of decimale notatie volgens ANSI C-regels.

Hoewel MOF-code flexibel is, treden er enkele wijzigingen op bij het verwerken van Automation:

  • U moet 64-bits gehele getallen coderen als tekenreeksen.

    Automation biedt geen ondersteuning voor een 64-bits integraal type.

  • Automatiseringstypen komen niet altijd overeen met de bitgrootte van MOF-gegevenstypen.

    Automation gebruikt bijvoorbeeld VT_I4 om een niet-ondertekende 16-bits waarde te retourneren. Deze discrepantie bestaat vanwege problemen met de aanmeldingsextensie. Als Automation VT_I2 gebruikt in plaats van VT_I4, lijkt 65.536 de waarde 1 te zijn, wat type- en bereikproblemen veroorzaakt. Op dezelfde manier vertegenwoordigt Automation het uint32--type als VT_I4 omdat er geen groter geheel getaltype bestaat dat uint32-bevat.

  • U hoeft geen weergave voor 8-bits numerieke typen te wijzigen.

    Automation ondersteunt VT_UI1, een niet-ondertekend 8-bits type.

MOF ondersteunt lange constanten. U declareert een lange constante met behulp van een eenvoudige reeks cijfers met een optioneel negatief teken. Een lange constante mag niet groter zijn dan de grootte van de variabele die wordt gedeclareerd om deze vast te houden. Enkele voorbeelden van lange constanten zijn 1000 en 12310.

MOF ondersteunt ook alternatieve numerieke indelingen. De volgende tabel bevat de speciale tekens die u moet gebruiken om hexadecimale, binaire en octale constanten te beschrijven.

Constant Speciaal teken Voorbeeld
Decimaal
Geen
val = 65
Hexadecimaal
0x voorvoegsel
val = 0x41
Octaal
Voorloop 0
val = 0101
Binair
Volg B
val = 1000001B

U kunt een drijvende-kommaconstante gebruiken om wetenschappelijke notatie en breuken weer te geven, zoals hierna wordt weergegeven:

3.14
-3.14
-1.2778E+02

WMI beschouwt constanten met drijvende komma als VT_R8 typen voor Automation.

In het volgende voorbeeld worden klasse- en exemplaardeclaraties beschreven die laten zien hoe u elk van de numerieke gegevenstypen gebruikt om eigenschappen in te stellen:

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