2011-09-13 12 views
5

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ó.

Respuesta

17

Uso SysStringLen:

if (SysStringLen(variant.bstrVal) == 0) 
{ ... } 
-1

Usted puede probar la vt miembro del VARIANTE para VT_NULL o VT_EMPTY

if (variant.vt != VT_NULL) 
{ 
    ... 
} 
+0

Esto es incorrecto; una variante vacía es diferente a una variante establecida en 'VT_BSTR' con una cadena vacía –

+0

@ M.M. Se disculpa por haber interpretado mal la pregunta. Sin embargo, una prueba para 'VT_EMPTY' debería hacer el truco. –

+0

VT_EMPTY también es diferente a VT_BSTR. La pregunta implica que ya se sabe que 'variant.vt == VT_BSTR' ya. –

Cuestiones relacionadas