Uyarı C33005

VARYANT 'var' bir _In_ veya _InOut_ parametresi olarak sağlandı ancak başlatılmadı (ifade 'expr')

Açıklamalar

Bu uyarı, başlatılmamış VARIANT bir işleve yalnızca giriş veya giriş/çıkış parametresi olarak geçirildiğinde tetiklenir. Örneğin, SAL ek açıklaması olmayan bir _Out_ pass-by-reference parametresi.

Kod analizi adı: VARIANTCLEAR_UNINITFUNCPARAM

Örnek

Aşağıdaki örnek kod C33005 uyarısına neden olur:

#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
}

Bu uyarıları düzeltmek için, bir işleve yalnızca giriş veya giriş/çıkış olarak geçirmeden önce öğesini başlatın 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
}

Ayrıca bkz.

C33001C33004