C33005

警告 C33005: VARIANT 'var' は入力または入出力パラメーターとして指定されましたが、初期化されませんでした (式 'expr')

この警告は、初期化されていない VARIANT が入力専用パラメーターまたは入力/出力パラメーターとして関数に渡された場合にトリガーされます。たとえば、_Out_ SAL 注釈を使用しない pass-by-refrence パラメーターです。

#include <Windows.h>

void bar(VARIANT* v);   // v is assumed to be input/output

void foo()
{
    VARIANT v;
    bar(&v);            // C33005
    // ......
    VariantClear(&v);   // OK, assumed to be initialized by bar
}

これらの警告は、VARIANT を関数に入力専用または入出力として渡す前に初期化することで修正されます。

#include <Windows.h>

void bar(VARIANT* v);   // v is assumed to be input/output

void foo()
{
    VARIANT v;
    VariantInit(&v);
    bar(&v);            // OK
    // ......
    VariantClear(&v);   // OK, assumed to be initialized by bar
}

関連項目

C33001C33004