Я пытаюсь dcef3 сделать простой браузер, который открывает фиксированный URL-адрес. Я установил CefSingleProcess как false. Как только запускаю приложение, создаются два одноименных процесса (смотрю в проводнике процессов). Выхожу из приложения, и идет только один из процессов, остальные остаются. Вызов OnProcessMessageReceived никогда не вызывается. Вызов OnRenderProcessTerminated никогда не вызывается. Есть ли что-то конкретное, что мне нужно сделать, чтобы заставить cef убить дочерние процессы? Любые указатели будут полезны. Спасибо!
дочерний процесс dcef3 не завершается
comment
Вы звонили в CefShutdown? Какая версия КЭФ?
- person Dmitry Azaraev   schedule 13.09.2013
comment
Использование dcef3 в качестве компонента в компоновщике C++, поэтому нет места для вызова CefInitialize или CefShutdown. Однако теперь проблема решена! Со вчерашнего дня бился головой о клавиатуру, и это было банально. Не вызывал CefLoadLibDefault() после установки CefSingleProcess как false. Я опубликую полный ответ на мой вопрос, как только мне будет разрешено это сделать :)
- person Avnir Soni   schedule 13.09.2013
comment
@Avnir, я встречал похожую проблему CEF (хотя она в MFC, а не в Delphi), поэтому мне любопытен полный ответ. Я пытался проголосовать за вашу репутацию выше 15, поэтому, когда у вас будет время, поделитесь более подробной информацией. Спасибо!
- person sunpochin   schedule 10.03.2015
Ответы (1)
Решение. В приложении я делал следующее:
CefSingleProcess = false;
Application->Initialize();
Application->MainFormOnTaskBar = true;
Application->CreateForm(__classid(TForm2), &Form2);
Application->Run();
Я пропустил вызов CefLoadLibDefault(). Чтобы исправить это, я сделал это.
CefSingleProcess = false;
if( !CefLoadLibDefault())
return 0;
Application->Initialize();
Application->MainFormOnTaskBar = true;
Application->CreateForm(__classid(TForm2), &Form2);
Application->Run();
Теперь все работает нормально. @pac, надеюсь, вы найдете это полезным.
person
Avnir Soni
schedule
11.03.2015