我是C++的新手,所以请容忍我。我知道_bstr_t只是BSTR的一个包装类,但是,从MSDN文档中可以看到,_bstr_t没有将自己转换为BSTR的操作符。
所以,我可以将一个_bstr_t对象传递给一个函数,它需要一个BSTR作为参数,它安全吗?
或者有什么更好的方法来做这件事?我特别不希望这个有任何的内存泄漏。
我看过很多文章,所以我对此感到困惑。如果这是一个微不足道的问题,很抱歉。
发布于 2020-12-09 08:08:14
_bstr_t没有可转换为BSTR的运算符。
是也不是。BSTR被定义为等同于"afx.h“头文件中的wchar_t*:
typedef _Null_terminated_ LPWSTR BSTR;_bstr_t类(在“comutil.h”中)确实有转换操作符,有或没有const限定符,如下所示:
class _bstr_t {
public:
//...
//...
// Extractors
//
operator const wchar_t*() const throw();
operator wchar_t*() const throw();
//...编辑:但是来自这些操作人员的文件的一个次要的“注意事项”
为返回的指针分配新值不会修改原始BSTR数据。
https://stackoverflow.com/questions/65212049
复制相似问题