释放从 char* 创建的 _bstr_t

Posted

技术标签:

【中文标题】释放从 char* 创建的 _bstr_t【英文标题】:Freeing up _bstr_t which is created from char* 【发布时间】:2012-07-06 06:33:11 【问题描述】:

我有 char* 数组,我正在为它动态分配内存。

char *strData = new char[length+1];

这个 char* 我传递给 _bstr_t 如下,

_bstr_t bstrData = strData;

如何通过 bstrData 释放分配给 char* 的内存?

【问题讨论】:

【参考方案1】:

_bstr_t 管理自己的内部缓冲区(由SysAllocString 创建)。因此,一旦您创建了_bstr_t,就可以安全地删除您分配的字符数组。 bstrData 仍然绝对有用。

【讨论】:

以上是关于释放从 char* 创建的 _bstr_t的主要内容,如果未能解决你的问题,请参考以下文章

关于使用_bstr_t的一个坑

CComVariant 与 _variant_t、CComBSTR 与 _bstr_t

_bstr_t和_variant_t是怎样定义的

_variant_t和_bstr_t

将 _bstr_t 对象传递给期望 BSTR 作为参数的函数是不是安全?

如何将_bstr_t转换为CString