Aracılığıyla paylaş


Sayılar (WMI)

MOF'de sayılar, sayısal değerleri açıklayan basamaklardır. MOF, Otomasyon'a çevrilen çeşitli veri türleri sağlar ve ayrıca bu sayıların farklı biçimlerde olmasını sağlar. Aşağıdaki tabloda MOF'un desteklediği sayısal değerler listelemektedir.

Veri tipi Otomasyon türü Açıklama
sint8 VT_I2 İmzalı 8 bit tamsayı.
sint16 VT_I2 İmzalı 16 bit tamsayı.
sint32 VT_I4 İmzalı 32 bit tamsayı.
sint64 VT_BSTR Dize biçiminde imzalı 64 bit tamsayı. Bu tür Amerikan Ulusal Standartlar Enstitüsü (ANSI) C kurallarına göre onaltılık veya ondalık biçime uyar.
real32 VT_R4 Elektrik ve Elektronik Mühendisleri Enstitüsü, Inc. (IEEE) standardına uygun 4 baytlık kayan nokta değeri.
real64 VT_R8 IEEE standardına uygun 8 baytlık kayan nokta değeri.
uint8 VT_UI1 İşaretsiz 8 bit tamsayı.
uint16 VT_I4 İşaretsiz 16 bit tamsayı.
uint32 VT_I4 İşaretsiz 32 bit tamsayı.
uint64 VT_BSTR Dize biçiminde işaretsiz 64 bit tamsayı. Bu tür, ANSI C kurallarına göre onaltılık veya ondalık biçime uyar.

Esnek olsa da, MOF kodu Otomasyon ile ilgilenirken bazı değişikliklerle karşılaşır:

  • 64 bit tamsayıları dize olarak kodlamanız gerekir.

    Otomasyon, 64 bit tam sayı türünü desteklemez.

  • Otomasyon türleri her zaman MOF veri türlerine bit boyutuna karşılık gelir.

    Örneğin, Otomasyon imzalanmamış bir 16 bit değer döndürmek için VT_I4 kullanır. Bu tutarsızlık, oturum açma uzantısı sorunları nedeniyle var. Otomasyon VT_I4 yerine VT_I2 kullandıysa, 65.536 değeri 1 olarak görünür ve bu da tür ve aralık sorunlarına neden olur. Benzer şekilde, otomasyon uint32 türünü VT_I4 olarak temsil eder çünkü uint32içerecek daha büyük bir tamsayı türü yoktur.

  • 8 bit sayı türleri için herhangi bir gösterimi değiştirmeniz gerekmez.

    Otomasyon, imzalanmamış bir 8 bit türü olan VT_UI1 destekler.

MOF uzun sabitleri destekler. İsteğe bağlı negatif işareti olan basit bir basamak serisi kullanarak uzun bir sabit bildirirsiniz. Uzun bir sabit, onu tutmak için bildirilen değişkenin boyutunu aşamaz. Uzun sabitlere örnek olarak 1000 ve 12310 verilebilir.

MOF, alternatif sayısal biçimleri de destekler. Aşağıdaki tabloda onaltılık, ikili ve sekizli sabitleri açıklamak için kullanmanız gereken özel karakterler listelenmiştir.

Sabit Özel karakter Örnek
On -da -lık
Hiç kimse
val = 65
Onaltı -lık
0x ön eki
val = 0x41
Sekizli
Baştaki 0
val = 0101
İkili
Sondaki B
val = 1000001B

Bir kayan nokta sabiti kullanarak bilimsel gösterimin yanı sıra kesirleri de temsil edebilirsiniz. Aşağıda gösterildiği gibi:

3.14
-3.14
-1.2778E+02

WMI, kayan nokta sabitlerini Otomasyon için VT_R8 türleri olarak kabul eder.

Aşağıdaki örnekte, özellikleri ayarlamak için sayısal veri türlerinin her birinin nasıl kullanılacağını gösteren sınıf ve örnek bildirimleri açıklanmaktadır:

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