COM互操作控制导致“内存不足”错误

问题描述 投票:0回答:0

我使用 VB.NET 为 CefSharp 编写了一个 COM 互操作控件,我在 VB6 中将其作为 OCX 使用。

有时,它可以工作,但有时当显示 then 控件时,VB6 无法加载它并告诉我“内存不足”。 表单日志文件显示“第 21 行:无法加载控件 WinformsCefSharp1。”

或者它可能没问题,但是当我关闭表单时,会显示错误。

理论上它应该工作吗,我只需要找出它到底出了什么问题,或者是否存在由于 VB6 等未修复的错误而无法避免这些错误的情况?

一旦发生错误,我必须关闭 Visual Basic 6 并重新打开它,否则它会抛出错误并且无法重新启动。

所以我认为 Visual Basic 6 锁定了一些文件,在任务管理器中我看到 3 个 CefSharpSubprocesses。

我也可以通过调用可靠地引发错误

Public Sub DoShutdown()

    browser.Dispose()
    CefSharp.Cef.Shutdown() 'It does not matter if I switch the lines, the error occurs always

End Sub

我有一个疯狂的想法:如果我将 COM 对象包装到 .NET dll 中会怎么样?会有帮助吗?

vb.net com vb6 interop
© www.soinside.com 2019 - 2024. All rights reserved.