Delphi TWebBrowser 内存泄漏

标签 delphi delphi-2009 twebbrowser

我的应用程序使用加载网页的 TWebBrowser。问题是,关闭包含 TWebBrowser 的表单后,使用的内存没有释放。如果我打开和关闭表单,内存只会不断增加。

看到一些关于调用 SetProcessWorkingSetSize() 或 CoFreeUnusedLibrariesEx() 来解决这个问题的帖子,但我不确定这些是否是正确的解决方案。

知道如何释放 TWebBrowser 使用的内存吗?

最佳答案

QC#106829描述了 TWebBrowser 内存泄漏的一种可能原因。访问 Document (以及通过 TOleControl.GetIDispatchPropTOleControl.GetIUnknownProp 实现的任何其他属性)会导致泄漏,因为它调用 AddRef 而不调用 Release。作为解决方法,您可以手动调用 Release,或者您可以修补 VCL ( see here ),或者您可以避免有问题的属性(例如,使用 browser.DefaultInterface.Document 而不是 browser.Document )。

关于Delphi TWebBrowser 内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10224801/

相关文章:

delphi - 如何触发 HTML 表单的 onsubmit 事件?

delphi - 我如何查看 .dcu 是用哪个 Delphi 版本编译的?

delphi - 如何从自动化调用内部确定脚本源位置?

freepascal - 是否有一个过程可以在运行时在单个过程中初始化可变数量的对象?

delphi - 如何在 Delphi 2009 中创建最近使用的文件列表?

delphi - 为什么 THashedStringList 不忽略重复项?

delphi - 为什么箭头键导航在TWebBrowser中不起作用?

delphi - Delphi XE3 中 Streams 的底层读/写方法是什么

excel - Delphi:如何将时间字符串写入Excel单元格但保留通用数字格式

delphi - 如何在TWebBrowser中检测打印命令是否完成?