Исключение:
Exception thrown at 0x76EBC762 (KernelBase.dll) in MyMFC.exe:
0x0000071A: The remote procedure call was canceled, or if a call time-out
was specified, the call timed out.
Я столкнулся с проблемой при попытке интегрировать CEF в программу MFC.
ОС: windows10
, VS2017
, cef_binary_73.1.13
.
Настройка Cef выглядит следующим образом:
CefSettings settings;
settings.multi_threaded_message_loop = false;
settings.ignore_certificate_errors = true;
settings.remote_debugging_port = 9000;
settings.external_message_pump = true;
CefDoMessageLoopWork
работает в MFCцикл обработки событий.
Я скачал файлы pdb.Стек вызовов при выходе из программы:
libcef.dll!content::ScreenlockMonitorDeviceSource::SessionMessageWindow::~SessionMessageWindow() Line 37 C++ Symbols loaded.
libcef.dll!content::ScreenlockMonitorDeviceSource::~ScreenlockMonitorDeviceSource() Line 15 C++ Symbols loaded.
libcef.dll!content::ScreenlockMonitor::~ScreenlockMonitor() Line 25 C++ Symbols loaded.
libcef.dll!std::unique_ptr<content::ScreenlockMonitor,std::default_delete<content::ScreenlockMonitor> >::~unique_ptr() Line 2267 C++ Symbols loaded.
libcef.dll!content::BrowserMainLoop::~BrowserMainLoop() Line 556 C++ Symbols loaded.
libcef.dll!content::BrowserMainLoop::~BrowserMainLoop() Line 552 C++ Symbols loaded.
libcef.dll!content::BrowserMainRunnerImpl::Shutdown() Line 236 C++ Symbols loaded.
libcef.dll!CefMainDelegate::ShutdownBrowser() Line 718 C++ Symbols loaded.
libcef.dll!CefContext::FinalizeShutdown() Line 587 C++ Symbols loaded.
libcef.dll!CefShutdown() Line 272 C++ Symbols loaded.
Кажется, что программа вызывает исключение при удалении объекта SessionMessageWindow
:
SessionMessageWindow::~SessionMessageWindow() {
if (window_) {
::WTSUnRegisterSessionNotification(window_->hwnd()); <- HERE THROW EXCEPTION!
window_.reset();
}
}
Я проверил переменную window_
, это былосозданный внутри CefInitialize
, который создаст окно для получения уведомлений об изменении сеанса, а затем зарегистрирует окно с ::WTSRegisterSessionNotification(window_->hwnd(), ...)
Я гуглил несколько дней и нашел несколько ссылок об Исключении CefShutdown, но это всеВ этом случае все по-другому, что вызвано ::WTSUnRegisterSessionNotification(window_->hwnd());
У кого-нибудь есть идеи?Заранее спасибо.