我使用 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 中会怎么样?会有帮助吗?