3

如何销毁动态创建的 Tchromium 组件?我在 DLL 中使用,在不释放 DLL 的情况下多次创建和销毁它所必需的组件,问题是没有释放内存并且无法清除缓存文件夹。如果我使用 CefShutDown 出现问题及时重新创建浏览器。我正在使用最新版本的 DCEF3 。像这样动态创建:

crm := TChromium.Create(Form1);
crm.SetParentComponent (Panel2);
crm.Align := alClient;

破坏尝试了几种方式:

FreeAndNil(crm);
crm.free;
crm := nil;
CefShutDown;

CefShutDown 及时解决了 destroy ,当我再次尝试重新创建组件而不释放我的 DLL 时,问题就出现了。

还解决了我在使用 UserAgent 时遇到的另一个问题,无法更改浏览器的娱乐性。

我感谢任何解决我的问题的建议。

4

1 回答 1

6

此行为符合设计。Chromium 问题跟踪器上的问题 1237与您的问题相同。相关摘录如下:

CefInitialize/CefShutdown 不能在同一进程中多次调用。您可以在不重新初始化 CEF 的情况下创建/销毁多个浏览器窗口。

你必须避免打电话CefShutDown

于 2015-05-14T14:17:18.247 回答