将一个_bstr_t对象传递给一个需要bstr作为参数的函数安全吗? 我是C++新手,请大家耐心听我说。我知道\u bstr\u t只是bstr的一个包装类,但是,正如在MSDN文档中所看到的,\u bstr\u t没有将自身转换为bstr的操作符

将一个_bstr_t对象传递给一个需要bstr作为参数的函数安全吗? 我是C++新手,请大家耐心听我说。我知道\u bstr\u t只是bstr的一个包装类,但是,正如在MSDN文档中所看到的,\u bstr\u t没有将自身转换为bstr的操作符,c++,msdn,bstr,C++,Msdn,Bstr,因此,我可以将\bstr\t对象传递给一个需要bstr作为参数的函数,它安全吗 还是有更好的方法?我特别不想让这个有任何内存泄漏 我看过很多文章,所以对此感到困惑。对不起,如果这是一个微不足道的问题 \u bstr\u t没有运算符将自身转换为bstr 是和否。BSTR定义为等同于“afx.h”头文件中的wchar\u t*: typedef\u Null\u terminated\u LPWSTR BSTR; 并且\u bstr\u t类(在“comutil.h”中)确实具有用于该类的转换运

因此,我可以将
\bstr\t
对象传递给一个需要
bstr
作为参数的函数,它安全吗

还是有更好的方法?我特别不想让这个有任何内存泄漏

我看过很多文章,所以对此感到困惑。对不起,如果这是一个微不足道的问题

\u bstr\u t
没有运算符将自身转换为
bstr

是和否。
BSTR
定义为等同于“afx.h”头文件中的
wchar\u t*

typedef\u Null\u terminated\u LPWSTR BSTR;
并且
\u bstr\u t
类(在“comutil.h”中)确实具有用于该类的转换运算符,包括或不包括
常量
限定符,如中所示:

class\u bstr\t{
公众:
//...
//...
//提取器
//
运算符常量wchar_t*()常量throw();
运算符wchar_t*()常量throw();
//...

编辑:但有一个小的“注意事项”:

将新值分配给返回的指针不会修改 原始BSTR数据

\u bstr\u t
没有运算符将自身转换为
bstr

是和否。
BSTR
定义为等同于“afx.h”头文件中的
wchar\u t*

typedef\u Null\u terminated\u LPWSTR BSTR;
并且
\u bstr\u t
类(在“comutil.h”中)确实具有用于该类的转换运算符,包括或不包括
常量
限定符,如中所示:

class\u bstr\t{
公众:
//...
//...
//提取器
//
运算符常量wchar_t*()常量throw();
运算符wchar_t*()常量throw();
//...

编辑:但有一个小的“注意事项”:

将新值分配给返回的指针不会修改 原始BSTR数据


因此,将_bstr_t对象作为参数传递,而不担心任何泄漏或问题,对我来说安全吗?@RajaShekar是的!如果函数参数应该是
bstr
,那么转换就会完成;我想我所展示的两个操作符的实现是“安全的”。这样安全吗对于我来说,将_bstr_t对象作为参数传递,而不必担心任何泄漏或问题???@RajaShekar Yes!如果函数参数应该是a
bstr
,那么转换就完成了;我想我所展示的两个操作符的实现是“安全的”。