我需要将已知的“字符串”值与“ _bstr_t”变量进行比较。我已经将“ _bstr_t”转换为“字符串”。但是为什么下面的方法不起作用。谢谢
_bstr_t bstr = L"My string";
if (_bstr_t(bstr,false)=="My string")
{
int pp=0;
}
答案 0 :(得分:0)
我试图通过使用“ _bstr_t(bstr,false)”将“ bstr”转换为“ string”类型
_bstr_t(bstr,false)
的作用是创建第二个_bstr_t
,它指向BSTR
指向的同一bstr
。
如果我写“ if(bstr ==“我的字符串”)”。出现错误……
在这种情况下,编译器将很难确定==
的含义,因为==
的左侧是_bstr_t
,而右侧是{{ 1}}
它可以解释为内置的指针相等运算符,用于比较两个指针-看看它们是否都指向同一位置。 或者,这可能意味着_bstr_t
operator ==
比较了两个const char [10]
,以查看它们在字典上是否相等。
我需要将已知的“字符串”值与“ _bstr_t”变量进行比较
由于您需要按字典顺序进行比较,因此您可能需要_bstr_t
。一种方法是从您的字符串常量构造一个_bstr_t operator ==
。
_bstr_t