Avviso C33005

VARIANT 'var' è stato fornito come _In_ parametro o _InOut_ ma non è stato inizializzato (espressione 'expr')

Osservazioni:

Questo avviso viene attivato quando un oggetto non inizializzato VARIANT viene passato a una funzione come parametro di input o input/output. Ad esempio, un parametro pass-by-reference senza un'annotazione _Out_ SAL.

Nome dell'analisi del codice: VARIANTCLEAR_UNINITFUNCPARAM

Esempio

Il codice di esempio seguente causa l'avviso C33005:

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

Per correggere questi avvisi, inizializzare prima VARIANT di passarlo a una funzione come input/input/output.

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

Vedi anche

C33001C33004