如何破坏动态创建的Tchromium组件?我在DLL中使用,在不释放DLL的情况下多次创建和销毁它所需的组件,问题是没有释放内存而无法清除缓存文件夹。如果我使用CefShutDown问题及时发生再次重新创建浏览器。我使用的是最新版本的DCEF3。 像这样动态创建:
crm := TChromium.Create(Form1);
crm.SetParentComponent (Panel2);
crm.Align := alClient;
以多种方式进行破坏:
FreeAndNil(crm);
crm.free;
crm := nil;
CefShutDown;
CefShutDown及时解决了破坏问题,当我再次尝试重新创建组件而没有释放我的DLL时,问题就出现了。
还解决了我在UserAgent上遇到的另一个问题,无法改变浏览器的重新创建。
我感谢任何解决我问题的建议。
答案 0 :(得分:6)
此行为与设计完全相同。 Chromium问题跟踪器上的Issue 1237与您的问题相同。相关摘录是:
在同一进程中无法多次调用CefInitialize / CefShutdown。您可以创建/销毁多个浏览器窗口,而无需重新初始化CEF。
您必须避免拨打CefShutDown
。