2011-09-13 40 views
5

Tôi có một biến thể chứa BSTR, nhưng đôi khi BSTR là "" (trống), vậy làm thế nào để tránh điều này? Tôi đã thử một cái gì đó như:Kiểm tra xem BSTR có trống không

variant.bstrVal != NULL 

Nhưng nó không hoạt động.

Trả lời

17

Sử dụng SysStringLen:

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

Bạn có thể kiểm tra vt viên của VARIANT cho VT_NULL hoặc VT_EMPTY

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

này là không chính xác; một biến thể trống khác với một biến thể được đặt thành 'VT_BSTR' với chuỗi trống –

+0

@ M.M xin lỗi vì đã hiểu sai câu hỏi. Tuy nhiên, một thử nghiệm cho 'VT_EMPTY' nên thực hiện thủ thuật. –

+0

VT_EMPTY cũng khác với VT_BSTR. Câu hỏi ngụ ý rằng nó được biết rằng 'variant.vt == VT_BSTR' đã có. –

Các vấn đề liên quan