0

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

_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()?如果不是为什么?

4

1 回答 1

1

ABSTR是由动态分配的SysAllocString(如果我没记错名称,请检查它!)。

有相应的解除分配功能。

只需阅读文档


如果您使用的是 Visual C++ 编译器,并且不打算将代码移植到其他编译器,那么您可以使用与 Visual C++ 捆绑在一起的“智能 BSTR”类。我记不起名字了。但是像_bstr_t. 等等,检查文档...好吧,在提供名称的索引中键入“_bstr”,这_bstr_t和我想的一样!:-)

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

于 2012-12-26T23:36:35.123 回答