开发者

how to test if CComBSTR is empty

开发者 https://www.devze.com 2023-03-13 11:40 出处:网络
How to test if a CComBSTR is an empty string? (with no \'text\' value, can be "" or can be null)

How to test if a CComBSTR is an empty string? (with no 'text' value, can be "" or can be null)

my ideas:

  1. test if CComBSTR::ByteLength() returns 0
  2. test if CComBSTR::开发者_如何学GoGetStreamSize() returns 0
  3. test if CComBSTR::m_str is NULL
  4. test if CComBSTR::Length() returns 0

which one is correct approach? if none of them is, then what is correct approach?

thanks.


4) Test length 0 it's fast as it's stored


3) test if CComBSTR::m_str is NULL

If you check the source code of CComBSTR there's several operators you can use to do this test:

bool CComBSTR::operator!() const throw()
bool CComBSTR::operator!=(int nNull) const throw()
bool CComBSTR::operator==(int nNull) const throw()
operator CComBSTR::BSTR() const throw()

For example:

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 */ }
0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号