我有一些代码看起来像这样:
_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"类,它可以为您处理回收。