我是_bstr_t
的新手,仍然试图抓住它。我试图检查特定字符串x
是否包含在bstring中的任何位置。我通常会喜欢的东西;
String x = "hello";
String example = "You! hello there";
...
if (example.find(x) != string::npos) {
...
仅为了记录,目标平台是Windows。
答案 0 :(得分:3)
无需使用_bstr_t
。使用BSTR
类型。
接下来,阅读Eric's Complete Guide to BSTR Semantics。
最后,您可以像在大多数情况下的普通字符数组一样在本机代码中使用BSTR。
BSTR bstr = SysAllocString(L"FooBarBazQux");
if (wcsstr(bstr, L"Bar") != NULL) {
// Found it! Do something.
} else {
// Not there.
}
SysFreeString(bstr);
答案 1 :(得分:1)
您的示例似乎是尝试使用STL中的string :: find。但是,您指定类型为“String”的变量(大写)。如果您改为:
using namespace std;
string x = "hello";
string example = "You! hello there";
...
你的例子会编译。你真的有一个你需要使用的BSTR或_bstr_t吗?即使这样,从_bstr_t创建一个std :: string也很容易,之后你可以像往常那样使用STL。