如何测试CComBSTR是否为空字符串? (没有'text'值,可以是“”或可以为null)
我的想法:
CComBSTR::ByteLength()
是否返回0 CComBSTR::GetStreamSize()
是否返回0 CComBSTR::m_str
是否为NULL CComBSTR::Length()
是否返回0 哪一个是正确的方法?如果没有,那么什么是正确的方法?
感谢。
答案 0 :(得分:2)
4)测试长度0它存储的速度很快
答案 1 :(得分:0)
3)测试CComBSTR :: m_str是否为NULL
如果检查CComBSTR的源代码,可以使用几个运算符来进行此测试:
bool CComBSTR::operator!() const throw()
bool CComBSTR::operator!=(int nNull) const throw()
bool CComBSTR::operator==(int nNull) const throw()
operator CComBSTR::BSTR() const throw()
例如:
CComBSTR value;
if (!value) { /* NULL */ } else { /* not NULL */ }
if (value != NULL) { /* not NULL */ } else { /* NULL */ }
if (value == NULL) { /* NULL */ } else { /* not NULL */ }
if ((BSTR) value) { /* not NULL */ } else { /* NULL */ }