浮動小数点値を使用した MOF コードのコンパイル

MOF コンパイラは、非浮動小数点プロパティに指定された浮動小数点値を受け入れます。 値は切り上げまたは切り捨てられ、非浮動点の数値として格納されます。 この状況により、予期しない結果になる可能性があります。

次の MOF コード例では、"Test" という名前の名前空間に abc というクラスを定義しています。 この MOF コードはエラーなしでコンパイルされますが、このコードによって作成されたインスタンスの exampleUint16 プロパティに定義されている浮動小数点値に対するクエリを実行することはできません。

#pragma namespace ("\\\\.\\Root")

instance of __Namespace
{
    Name = "Test";
};

#pragma namespace ("\\\\.\\Root\\test")

Class abc
{
        [KEY] String testID ;
        Uint16 exampleUint16;
        Real64 exampleReal64;
};

Instance of abc
{ 
        TestID ="exampleID";
        exampleUint16 = 1000.4;
};

次のクエリを発行すると、無効なクエリを示すエラー コードが表示されます。

SELECT * FROM abc WHERE exampleUint16 = 1000.4

ただし、次のクエリでは、指定されたインスタンスが検索されます。

SELECT * FROM abc WHERE exampleUint16 = 1000

MOF ファイルのコンパイル

mofcomp

プリプロセッサ コマンド