变量“var”是作为
_In_或_InOut_参数提供的,但未初始化(表达式“expr”)
备注
当未初始化的 VARIANT 作为仅输入或输入/输出参数传递给函数时,将触发此警告。 例如,不带 _Out_ SAL 注释的按应用传递参数。
代码分析名称:VARIANTCLEAR_UNINITFUNCPARAM
示例
以下示例代码会导致警告 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
}
要更正这些警告,请先初始化 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
}