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