我有一些看起来像这样的代码:
_TypePtr spType = NULL;
. . . // host the CLR and populate that type
{
BSTR fullName;
spType->get_FullName(&fullName);
wprintf(L"Got type %s\n", fullName);
}
我需要释放那个bstr吗?我如何释放它SysFreeString()?如果不是为什么?
答案 0 :(得分:1)
BSTR
由SysAllocString
动态分配(如果我正确地回忆起这个名字,请检查它!)。
有相应的释放功能。
只需 阅读文档 。
如果您正在使用Visual C ++编译器,并且不打算将代码移植到其他编译器,那么您可以使用与Visual C ++捆绑在一起的“smart BSTR”类。我无法回想起这个名字。但是像_bstr_t
这样的东西。等等,检查文档......好吧,在索引中输入“_bstr”提供了名称,我认为它是_bstr_t
! : - )
使用“智能”类可以为你处理释放。