C++ 如何检查a_bstr_t是否包含(类似于str.find)字符串
我是新来的C++ 如何检查a_bstr_t是否包含(类似于str.find)字符串,c++,windows,string,visual-c++,bstr,C++,Windows,String,Visual C++,Bstr,我是新来的\bstr\t,仍在努力掌握诀窍。我试图检查某个特定字符串x是否包含在bstring中的任何位置。我通常喜欢的东西 String x = "hello"; String example = "You! hello there"; ... if (example.find(x) != string::npos) { ... 仅供记录,预期的平台是windows 无需使用\u bstr\t。使用BSTR类型 接下来,阅读 最后,您可以在本机代码中使用BSTR,就像在大多数情况下使用普通字
\bstr\t
,仍在努力掌握诀窍。我试图检查某个特定字符串x
是否包含在bstring中的任何位置。我通常喜欢的东西
String x = "hello";
String example = "You! hello there";
...
if (example.find(x) != string::npos) {
...
仅供记录,预期的平台是windows 无需使用
\u bstr\t
。使用BSTR
类型
接下来,阅读
最后,您可以在本机代码中使用BSTR,就像在大多数情况下使用普通字符数组一样
.无需使用
\u bstr\u t
。使用BSTR
类型
接下来,阅读
最后,您可以在本机代码中使用BSTR,就像在大多数情况下使用普通字符数组一样
.您的示例似乎试图使用string::find from STL。但是您可以指定类型为“String”(大写)的变量。如果你改为:
using namespace std;
string x = "hello";
string example = "You! hello there";
...
你的例子可以编译。你是否真的有一个你需要处理的BSTR或是你没有展示的BSTR?即使如此,从一个std::string创建一个std::string还是很容易的,之后您可以像平常一样使用STL。您的示例似乎在尝试使用string::find from STL。但是您可以指定类型为“String”(大写)的变量。如果你改为:
using namespace std;
string x = "hello";
string example = "You! hello there";
...
你的例子可以编译。你是否真的有一个你需要处理的BSTR或是你没有展示的BSTR?即使是这样,从一个_bstr_t生成一个std::string还是很容易的,之后你可以像平常一样使用STL。谢谢你的帮助,但是编译器似乎不喜欢这样的东西,
错误C2665:'wcsstr':两个重载都不能转换所有的参数类型
<代码>常量wchar\u t*wcsstr(常量wchar\u t*,常量wchar\u t*)wchar\u t*wcsstr(wchar\u t*,const wchar\u t*)
不看代码很难说。可能是const
问题?你可以用你的新代码问一个新问题。如果你不同意第一条建议,BSTR
会导致内存泄漏。等效代码:\u bstr\u t bstr(L“FooBarBazQux”);if(wcsstr(bstr,L“Bar”)!=NULL){}else{}
。不需要SysFreeString。如果要进行此参数,请至少使用CComBSTR
。感谢您的帮助,但是编译器似乎不喜欢某些东西,错误C2665:“wcsstr”:两个重载都无法转换所有参数类型
<代码>常量wchar\u t*wcsstr(常量wchar\u t*,常量wchar\u t*)wchar\u t*wcsstr(wchar\u t*,const wchar\u t*)
不看代码很难说。可能是const
问题?你可以用你的新代码问一个新问题。如果你不同意第一条建议,BSTR
会导致内存泄漏。等效代码:\u bstr\u t bstr(L“FooBarBazQux”);if(wcsstr(bstr,L“Bar”)!=NULL){}else{}
。不需要SysFreeString。如果要进行此参数,至少使用CComBSTR
。