CEF支持一系列的編程語言和操作系統,並且能很容易地整合到新的或已有的工程中去。它的設計思想就是易用且兼顧性能。
CEF3支持一系列的編程語言和操作系統,並且能很容易地整合到新的或已有的工程中去。它的設計思想就是易用且兼顧性能。其目的是提供一套嵌入式的接口。其主要依賴於公開的Content API來實現的。為了清晰地了解它們之間的的關系,下圖描述了WebKit, Content API,Chrome,Content shell和CEF3的層次關系。Chrome瀏覽器,content shell和CEF3三者都是基於content API開發的,它們只是有不同的實現,服務於不同的應用場景而已。
圖片來源:http://blog.csdn.net/milado_nju/article/details/7455373
工程和代碼結構是了解一套代碼最基本的入口,了解了代碼結構,基本上就知道這套代碼要做什么,大體上如何去做的。先看圖

- cefclient/cefsimple: 包含基於CEF的一個簡單應用程序示例,可使用版本分發中的文件創建。該應用包含了大部分CEF函數的示例。
- Debug:包含構建debug 版本的共享庫(libcef)和該平台所需的其他支持庫。這個應用程序提供創建所需的最小功能瀏覽器窗口的示例。
- Release: 存放release版本的CEF動態庫和運行在該平台所需的其他庫文件。
- include :包含了CEF所需的頭文件
- libcef_dll :包含 libcef_dll_wrapper靜態鏈接庫源代碼,使用CEF C++API的應用的必要鏈接庫。
- Resource: 包含創建CEF應用需要的源代碼,該文件夾還包含.pak文件(全局資源的二進制文件)和和平台相關所需的圖片和光標資源
在此處順便提一句,從cefbuilds.com上下載下的源代碼,是沒有解決方案文件的,需要用使用構建系統工具,建立解決方案文件sln后就行編譯了。具體詳見CMake入門以及學習筆記
在CEF3 3.2272版本(對應chromium 41)之后的cefclient示例里邊又分了幾個子文件夾:browser、common、renderer、resources。
- browser:包含瀏覽器進程即當前主進程所用的代碼文件。
- renderer:包含renderer進程需要的代碼文件
- common:包含實現主進程和renderer進程的共用文件
- resources:主要是測試需要的圖片、html文件、pdf文件以及鼠標光標資
CEF項目的一些dll和資源作用
libcef.dll------------------------->Cef的核心類庫
icudt.dll-------------------------->支持unicode的類庫
ffmpegsumo.dll--------------------->支持音頻和視頻的類庫
d3dcompiler_43.dll----------------->WinXP下支持3D的類庫
d3dcompiler_46.dll----------------->Win7和之后的Win支持3D的類庫
libEGL.dll------------------------->加速合成支持庫
libGLESv2.dll---------------------->加速合成支持庫
locales---------------------------->此文件夾存放了各種國家的語言資源
cef.pak---------------------------->WebKit相關的資源(谷歌瀏覽器的核心是webkit)
devtools_resources.pak------------->調試器的相關資源
順便說一下,我使用的是CEF3 2.2272版本的,開發環境為VS2008, Win7,這之后的文章和代碼都是基於此版本和開發環境。其他版本和開發環境請相應的變通,大體上差不多。