Megosztás a következőn keresztül:


Számok (WMI)

Az MOF-ban a számok numerikus értékeket leíró számjegyek. Az MOF számos olyan adattípust biztosít, amelyek automatizálásra fordíthatók, és lehetővé teszik, hogy ezek a számok különböző formátumban legyenek. Az alábbi táblázat az MOF által támogatott numerikus értékeket sorolja fel.

Adattípus Automatizálás típusa Leírás
sint8 VT_I2 Aláírt 8 bites egész szám.
sint16 VT_I2 Aláírt 16 bites egész szám.
sint32 VT_I4 Aláírt 32 bites egész szám.
sint64 VT_BSTR Aláírt 64 bites egész szám sztring formában. Ez a típus az American National Standards Institute (ANSI) C szabályai szerint hexadecimális vagy decimális formátumot követ.
real32 VT_R4 4 bájtos lebegőpontos érték, amely az Institute of Electrical and Electronics Engineers, Inc. (IEEE) szabványt követi.
real64 VT_R8 8 bájtos lebegőpontos érték, amely az IEEE szabványt követi.
uint8 VT_UI1 Aláíratlan 8 bites egész szám.
uint16 VT_I4 Aláíratlan 16 bites egész szám.
uint32 VT_I4 Aláíratlan 32 bites egész szám.
uint64 VT_BSTR Nem aláírt 64 bites egész szám sztring formában. Ez a típus az ANSI C-szabályok szerint hexadecimális vagy decimális formátumot követ.

Bár rugalmas, az MOF-kód az Automation kezelése során bizonyos változásokat tapasztal:

  • A 64 bites egész számokat sztringekként kell kódolnia.

    Az Automation nem támogatja a 64 bites integrált típust.

  • Az automatizálási típusok nem mindig felelnek meg bitméretben az MOF-adattípusoknak.

    Az Automation például VT_I4 használ egy aláíratlan 16 bites érték visszaadásához. Ez az eltérés a jelkiterjesztési problémák miatt létezik. Ha az Automation VT_I4 helyett VT_I2 használ, a 65 536 az 1 értéknek tűnik, ami típus- és tartományproblémát okoz. Hasonlóképpen, az Automation az uint32 típust VT_I4 jelöli, mivel nincs nagyobb egész számtípus, amely uint32tartalmaz.

  • A 8 bites számtípusok megjelenítését nem kell módosítania.

    Az Automation támogatja a VT_UI1, amely egy nem aláírt 8 bites típus.

Az MOF támogatja a hosszú állandókat. Egy hosszú állandót egy egyszerű számjegysorozattal deklarálhat, opcionális negatív előjellel. A hosszú állandó nem haladhatja meg a megtartásaként deklarált változó méretét. Néhány példa a hosszú állandókra: 1000 és 12310.

Az MOF alternatív numerikus formátumokat is támogat. Az alábbi táblázat felsorolja a hexadecimális, bináris és oktális állandók leírásához használandó speciális karaktereket.

Konstans Speciális karakter Példa
Tizedes
Egyik sem
val = 65
Hexadecimális
0x előtag
val = 0x41
Oktális
Első 0
val = 0101
Bináris
Záró B
val = 10000001B

A lebegőpontos állandóval a tudományos jelöléseket és a törteket is képviselheti, ahogy a következő ábra is mutatja:

3.14
-3.14
-1.2778E+02

A WMI a lebegőpontos állandókat VT_R8 automation-típusnak tekinti.

Az alábbi példa osztály- és példánydeklarációkat mutat be, amelyek bemutatják, hogyan használható az egyes numerikus adattípusok a tulajdonságok beállítására:

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