C++ 我需要释放由_Type::get_FullName填充的BSTR吗

C++ 我需要释放由_Type::get_FullName填充的BSTR吗,c++,bstr,clr-hosting,C++,Bstr,Clr Hosting,我有一些代码如下所示: _TypePtr spType = NULL; . . . // host the CLR and populate that type { BSTR fullName; spType->get_FullName(&fullName); wprintf(L"Got type %s\n", fullName); } 我需要释放那个bstr吗?我该如何释放它?如果不是,原因是什么?一个BSTR由SysAllocString动态分配(如果

我有一些代码如下所示:

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

我需要释放那个bstr吗?我该如何释放它?如果不是,原因是什么?

一个
BSTR
SysAllocString
动态分配(如果我正确调用了名称,请检查!)

有一个相应的释放函数

只需阅读文档即可


如果你使用Visual C++编译器,并且不打算将代码移植到其他编译器,那么你可以使用VisualC++中捆绑的“智能BSTR”类。我记不起确切的名字了。但是有点像

\u bstr\t
。等等,检查文件。。。好的,在提供名称的索引中键入“\u bstr”,它是
\u bstr\u t
,正如我所想的那样!:-)


通过使用“智能”类,它将为您处理释放。

@WhozCraig好的,我如何释放它?使用。在您的情况下,完成后,调用
SysFreeString(fullName) @ Mehrdad,我是从C++中做的,而不是C语言。是的,但是你不能在C++中调用C++函数吗?或者这是在mscorlib加载之前?@Mehrdad如果我在做C++/CLI。在纯非托管C++中,我通过COM实例化一个新的CLR实例,所以我没有这个选项。我显然需要阅读
bstr\u t
ATL::CComBSTR
这两本书,这两本书对于本答案中提到的智能bstr类来说都足够了。