【问题标题】:In VB6, do I need to call SysFreeString on strings allocated with SysAllocString?在 VB6 中,我是否需要在分配有 SysAllocString 的字符串上调用 SysFreeString?
【发布时间】:2012-12-26 04:15:10
【问题描述】:

我有一个使用 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

【问题讨论】:

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


    【解决方案1】:

    不,你没有。 VB6 将释放它们,因为 BSTR 是其原生字符串格式。

    【讨论】:

    猜你喜欢
    • 2017-03-12
    • 1970-01-01
    • 1970-01-01
    • 2018-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多