2011-09-13 15 views
5

मेरे पास एक संस्करण है जिसमें एक BSTR है, लेकिन कभी-कभी BSTR "(खाली) होता है, तो इससे कैसे बचें? मैंने कुछ ऐसा करने की कोशिश की है:जांचें कि कोई BSTR खाली है

variant.bstrVal != NULL 

लेकिन यह काम नहीं किया।

उत्तर

17

उपयोग SysStringLen:

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

आप VT_NULL या VT_EMPTY

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

यह गलत है के लिए VARIANT की vt सदस्य परीक्षण कर सकते हैं; प्रश्न को गलत तरीके से पढ़ने के लिए खाली स्ट्रिंग –

+0

@ एमएम क्षमा के साथ 'VT_BSTR' पर एक संस्करण सेट के लिए एक खाली संस्करण अलग है। हालांकि, 'VT_EMPTY' के लिए एक परीक्षण चाल चलाना चाहिए। –

+0

VT_EMPTY VT_BSTR से भी अलग है। प्रश्न का तात्पर्य है कि यह ज्ञात है कि 'variant.vt == VT_BSTR' पहले से ही है। –

संबंधित मुद्दे