C28717

警告 C28717:VARIANT 类型无效

VARIANT 结构的vt 字段只能采用某些值。 向其分配任何其他值是一个错误。

VARIANTVARIANTARG 结构的 vt 字段只能采用以下值 (可能由 VT_BYREF 和/或 VT_ARRAY) VT_ARRAY ORed: VT_EMPTYVT_NULLVT_I2VT_I4VT_R4VT_R8VT_CYVT_DATEVT_BSTRVT_DISPATCHVT_ERRORVT_BOOLVT_VARIANTVT_DECIMALVT_RECORD、 VT_UNKNOWNVT_I1VT_UI1VT_UI2VT_UI4VT_INTVT_UINT (VT_EMPTYVT_NULL不能与VT_ARRAY) 结合使用。

示例

PREfast 报告以下示例的警告。

VARIANT var;
var.vt = VT_SAFEARRAY | VT_INT;

以下示例避免了此错误。

VARIANT var;
var.vt = VT_ARRAY | VT_INT;