Я пытался преобразовать "bstr" в тип "string" с помощью "_bstr_t (bstr, false)" *
Что _bstr_t(bstr,false)
делает, чтобы создать вторую _bstr_t
который указывает на то же BSTR
, на которое указывает bstr
.
, если я пишу "if (bstr ==" My string ")".есть ошибка…
Компилятору будет сложно понять, что означает ==
в этом случае, потому что левая сторона ==
- это _bstr_t
, а праваясторона является const char [10]
Это может быть интерпретировано как встроенный оператор равенства указателей, который используется для сравнения двух указателей - чтобы увидеть, указывают ли они оба на одно и то же местоположение. Или это может означать оператор _bstr_t
==
, который сравнивает два _bstr_t
, чтобы увидеть, равны ли они лексикографически.
Мне нужно сравнить известное значение "string" с переменной "_bstr_t"
Поскольку вы хотите лексикографическое сравнение, вы, вероятно, хотите _bstr_t operator ==
.Один из способов сделать это - создать _bstr_t
из вашей строковой константы.
if (bstr == _bstr_t("My string"))
{
int pp = 0;
}