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
// ......
}