首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当作为参数传递时,它如何将_bstr_t转换为BSTR?

当作为参数传递时,它如何将_bstr_t转换为BSTR?
EN

Stack Overflow用户
提问于 2011-09-29 18:58:23
回答 2查看 3.2K关注 0票数 3

举个简单的例子:

代码语言:javascript
复制
_bstr_t smartString(L"MyString");

Process(smartString); // takes BSTR.

最初,我认为_bstr_t有一个从_bstr_t转换到BSTR的BSTR操作符,但看看msdn,却没有定义这样的操作符。

当将_bstr_t分配给BSTR参数或者将_variant_t分配给VARIANT时,它是如何工作的?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-09-29 19:00:24

BSTRtypedefed为WCHAR* (wtyes.h文件),后者被typedefed为wchar_t* (winnt.h文件),_bstr_t具有operator wchar_t*()成员变量。所以编译器只是使用这个运算符进行转换。

票数 3
EN

Stack Overflow用户

发布于 2017-07-26 23:23:32

如果我没理解错的话,您想调用一个需要BSTR*的方法。没有隐式转换。请改用GetAddress()参数进行转换。

代码语言:javascript
复制
void foo( BSTR* ) {...}

void f()
{
   _bstr_t myBstr;
   foo( myBstr.GetAddress() );
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7596317

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档