我创建了一个 MFC DLL,它实现了 CEF 初始化、关闭和其他功能。当我使用这个DLL时,CefInitialize
等功能都正常,但是我的程序在AfxFreeLibrary
中崩溃了。此时CEF Shutdown已经执行成功,没有报错。
这是我的 CefSetting:
CefSettings cefSettings;
CefSettingsTraits::init(&cefSettings);
cefSettings.windowless_rendering_enabled = TRUE;
cefSettings.multi_threaded_message_loop = TRUE;
cefSettings.no_sandbox = TRUE;
cefSettings.single_process = false;
这是调用堆栈:
看起来线程等待事件超时并触发 NOTREACHED();
我该如何解决这个问题?
最佳答案
没有进一步的信息,很难给出建议。请确保您的应用程序结构正确。您可能需要查阅 "Application Structure" 部分的文件。您的进程启动了多次,因此您必须确保其他进程能够正确启动。
根据应用程序结构,使用“单独的子进程可执行文件”是可行的。我认为使用单独的子流程可执行文件通常是一种很好的方法,因为它可以简化很多事情。
顺便说一句。您可以通过运行
轻松测试应用程序结构是否有问题cefSettings.single_process = false;
如果在这种情况下一切正常,我将开始调查您的应用程序是如何在多进程配置中执行的。
关于c++ - 调用 AfxFreelibrary 时 CEF 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45560944/