C33001

警告 C33001: VARIANT 'var' は、初期化前の状態に戻されたときにクリアされました (式 'expr')

この警告は、初期化前の状態に戻された VARIANT が、初期化された VARIANT を必要とする VariantClear などの API に渡されるとトリガーされます。

#include <Windows.h>

HRESULT foo(bool some_condition)
{
    VARIANT var;

    if (some_condition)
    {
        //...
        VariantInit(&var);
        //...
    }

    VariantClear(&var);     // C33001
}

これらの警告は、適切に初期化された VARIANT に対してのみ VariantClear が呼び出されるようにすることで解決されます。

#include <Windows.h>

HRESULT foo(bool some_condition)
{
    VARIANT var;

    if (some_condition)
    {
        //...
        VariantInit(&var);
        //...
        VariantClear(&var);     // C33001
    }
}

関連項目

C33004C33005