我需要释放由_Type::get_FullName填充的bstr吗?

Do I need to free BSTRs populated by _Type::get_FullName

本文关键字:填充 bstr FullName get 释放 Type      更新时间:2023-10-16

我有一些代码看起来像这样:

_TypePtr spType = NULL;
. . . // host the CLR and populate that type
{
    BSTR fullName;
    spType->get_FullName(&fullName);
    wprintf(L"Got type %sn", fullName);
}

我需要释放那个str吗?我如何释放它SysFreeString()?如果不是,为什么?

BSTR是由SysAllocString动态分配的(如果我没有记错名字,请检查一下!)

有相应的释放函数

阅读文档


如果你正在使用Visual c++编译器,并且不打算将代码移植到其他编译器上,那么你可以使用Visual c++附带的"智能BSTR"类。我想不起确切的名字了。比如_bstr_t。等等,检查文件…好的,输入"_bstr"在索引提供的名称,它是_bstr_t,正如我所想的!: -)

通过使用"smart"类,它可以为您处理回收。