Tengo una variante que contiene un BSTR, pero a veces el BSTR es "" (vacío), así que ¿cómo evitar esto? He intentado algo como:Comprueba si un BSTR está vacío
variant.bstrVal != NULL
Pero no funcionó.
Tengo una variante que contiene un BSTR, pero a veces el BSTR es "" (vacío), así que ¿cómo evitar esto? He intentado algo como:Comprueba si un BSTR está vacío
variant.bstrVal != NULL
Pero no funcionó.
Uso SysStringLen
:
if (SysStringLen(variant.bstrVal) == 0)
{ ... }
Usted puede probar la vt
miembro del VARIANTE para VT_NULL
o VT_EMPTY
if (variant.vt != VT_NULL)
{
...
}
Esto es incorrecto; una variante vacía es diferente a una variante establecida en 'VT_BSTR' con una cadena vacía –
@ M.M. Se disculpa por haber interpretado mal la pregunta. Sin embargo, una prueba para 'VT_EMPTY' debería hacer el truco. –
VT_EMPTY también es diferente a VT_BSTR. La pregunta implica que ya se sabe que 'variant.vt == VT_BSTR' ya. –