Всем привет.
Я пытаюсь создать программу, которая встраивает CEF (фреймворк для встраивания Chromium) для отображения html.
Я просто хочу, чтобы каждое окно браузера, созданное в моей программе, имело разные CefCookieManager. Я читал документы CEF и знаю, что это возможно.
Код прост: сначала я пишу класс, унаследованный от CefRequestContextHandler.
#pragma once
#include "include/cef_request_context_handler.h"
#include "include/cef_cookie.h"
class WXRequestContextHandler :public CefRequestContextHandler
{
public:
WXRequestContextHandler(){}
~WXRequestContextHandler(){};
CefRefPtr<CefCookieManager> GetCookieManager() OVERRIDE {
return CefCookieManager::CreateManager("F:\\", false);
//return NULL;
}
private:
// Include the default reference counting implementation.
IMPLEMENT_REFCOUNTING(WXRequestContextHandler);
};
затем я создаю экземпляр CefRequestContext:
m_reqContext = CefRequestContext::CreateContext(new WXRequestContextHandler());
Наконец, создайте браузер с помощью CefBrowserHost::CreateBrowser с экземпляром CefRequestContext, созданным ранее:
CefBrowserHost::CreateBrowser(info, m_cefHandler.get(), pszURL, settings, m_reqContext);
ОК, я думаю, что это очень просто, и на самом деле я еще ничего не знаю о других, поэтому, когда я запускаю этот код для создания первого окна, я получаю исключение (срабатывает в libcef.dll, нарушение прав доступа 0xc00000005), и программа падает.
К сожалению, я обнаружил, что документы и руководства по CefCookieManager и CefRequestHandler очень плохие, поэтому мне пришлось искать помощь здесь. Если кто-нибудь знает какие-то проблемы с моим вопросом или какие-то руководства по CefCookieManager и CefRequestConextHandler, пожалуйста, помогите.
Я использую CEF3.1750 (июнь 2014 г.), VS2013 (vc12), win7.