C++ 如何获得一个_bstr\t的长度

C++ 如何获得一个_bstr\t的长度,c++,windows,string,C++,Windows,String,我正在使用以下方法将wstring复制到一个bstr\t: _bstr_t name; SysFreeString(name); // Free previous string, if any. name = SysAllocString(Member[k].Membername); 现在,在我使用“name”之前,我想检查它是否包含至少5个字符。换句话说,我想检查它的长度 我没有找到“countof”或“len”之类的词。有人有主意吗 谢谢, 隆皮 这是什么站台?W

我正在使用以下方法将wstring复制到一个bstr\t:

_bstr_t name;           
SysFreeString(name);   // Free previous string, if any.
name = SysAllocString(Member[k].Membername);
现在,在我使用“name”之前,我想检查它是否包含至少5个字符。换句话说,我想检查它的长度

我没有找到“countof”或“len”之类的词。有人有主意吗

谢谢, 隆皮


这是什么站台?Windows?您的代码包含一个主要错误:不要将
BSTR
调用(如
SysFreeString
)与
\u BSTR\t
混合使用<在C代码中,code>SysFreeString与
BSTR
一起使用;在C++中,代码> > BSTRYTT < /CODE>将为您管理内存。特别是,
\u bstr\u t::operator=
将为您调用旧字符串上的
SysFreeString
,因此代码中的bug实际上包含了一个双重删除bug。类似地,
\u bstr\u t::operator=
将调用新字符串的
SysAllocString
,并复制您的输入,因此您的
SysAllocString
会泄漏。也就是说,你的bug也是内存泄漏。刚刚注意到你的评论。。。因此,我应该跳过SysFreeString(name)并简单地分配name=Member[k].Membername,而不使用SysAllocString。?这是因为它为我做了所有这些事情。我理解你的意思了吗?谢谢你的评论!
name.length()