举个简单的例子:
_bstr_t smartString(L"MyString");
Process(smartString); // takes BSTR.最初,我认为_bstr_t有一个从_bstr_t转换到BSTR的BSTR操作符,但看看msdn,却没有定义这样的操作符。
当将_bstr_t分配给BSTR参数或者将_variant_t分配给VARIANT时,它是如何工作的?
发布于 2011-09-29 19:00:24
BSTR被typedefed为WCHAR* (wtyes.h文件),后者被typedefed为wchar_t* (winnt.h文件),_bstr_t具有operator wchar_t*()成员变量。所以编译器只是使用这个运算符进行转换。
发布于 2017-07-26 23:23:32
如果我没理解错的话,您想调用一个需要BSTR*的方法。没有隐式转换。请改用GetAddress()参数进行转换。
void foo( BSTR* ) {...}
void f()
{
_bstr_t myBstr;
foo( myBstr.GetAddress() );
}https://stackoverflow.com/questions/7596317
复制相似问题