出处:
http://blog.sina.com.cn/s/blog_570379cc0100n87s.html
CComBSTR, _bstr_t 使用原则
1. 二者都是对BSTR进行操作的智能指针,提供了一些功能来方便地操作BSTR,
CComBSTR
_bstr_t
使用二者都可以,
如果考虑到减少组件的大小,那么建议使用CComBSTR
如果考虑到功能的方便性,
2.
使用
#include
#include
3.
CComBSTR用在服务器端,_bstr_t用在客户端
不过有时候在服务器端用CComBSTR没有错,用_bstr_t就有
4.
_bstr_t会抛出异常,CComBSTR不会
5.
内存泄漏问题
将已初始化的 CComBSTR 的地址作为 [out] 参数传递到函数会导致内存泄漏。
在下面的示例中,在函数 OutString
替换为了保存字符串 "Initialized"
而分配的字符串时,该字符串被泄漏。
若要避免泄漏,请在作为 [out] 参数传递地址之前,对现有的 CComBSTR 对象调用 Empty 方法。
请注意,如果函数的参数是 [in, out],则同样的代码将不会导致泄漏。