C33004

警告 C33004: Out とマークされたバリアント ' var ' が初期化される前にクリアさ れました (式 ' expr ')

この警告は、入力時に初期化されていない可能性のある、Out_ SAL 注釈のバリアントパラメーターが、初期化されたバリアントを予期している VariantClear などの API に渡される場合にトリガーされます。

#include <Windows.h>

void t2(_Out_ VARIANT* pv)
{
    // ......
    VariantClear(pv);   // C33004
    // ......
}

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

#include <Windows.h>

void t2(_Out_ VARIANT* pv)
{
    VariantInit(pv);
    // ......
    VariantClear(pv);   // OK
    // ......
}

関連項目

C33001C33005