在VB6中,我是否需要在使用SysAllocString分配的字符串上调用SysFreeString?

时间:2013-01-11 14:49:59

标签: c++ dll com memory-leaks vb6

我有一个使用C ++ COM DLL的VB6应用程序,并在两者之间传递BSTR。我使用return ::SysAllocString(L"example");从C ++ DLL返回BSTR。

在以下示例中,我是否需要在此类字符串上调用SysFreeString

Sub Main()
    Dim own_str As String
    Dim dll_str As String

    own_str = "my own string"
    dll_str = DllComObj.FunctionReturningString()
    ' when leaving the scope:
    ' no need to free own_str,
    ' do I need to free dll_str?
End Sub

1 个答案:

答案 0 :(得分:3)

不,不。 VB6将释放它们,因为BSTR是其本机字符串格式。