CEF3開發者系列之工程和代碼結構


      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

   工程和代碼結構是了解一套代碼最基本的入口,了解了代碼結構,基本上就知道這套代碼要做什么,大體上如何去做的。先看圖

      
  1. cefclient/cefsimple: 包含基於CEF的一個簡單應用程序示例,可使用版本分發中的文件創建。該應用包含了大部分CEF函數的示例。
  2. Debug:包含構建debug 版本的共享庫(libcef)和該平台所需的其他支持庫。這個應用程序提供創建所需的最小功能瀏覽器窗口的示例。
  3. Release: 存放release版本的CEF動態庫和運行在該平台所需的其他庫文件。
  4. include :包含了CEF所需的頭文件
  5. libcef_dll :包含 libcef_dll_wrapper靜態鏈接庫源代碼,使用CEF C++API的應用的必要鏈接庫。
  6. Resource: 包含創建CEF應用需要的源代碼,該文件夾還包含.pak文件(全局資源的二進制文件)和和平台相關所需的圖片和光標資源

在此處順便提一句,從cefbuilds.com上下載下的源代碼,是沒有解決方案文件的,需要用使用構建系統工具,建立解決方案文件sln后就行編譯了。具體詳見CMake入門以及學習筆記

在CEF3 3.2272版本(對應chromium 41)之后的cefclient示例里邊又分了幾個子文件夾:browser、common、renderer、resources。

  1. browser:包含瀏覽器進程即當前主進程所用的代碼文件。
  2. renderer:包含renderer進程需要的代碼文件
  3. common:包含實現主進程和renderer進程的共用文件
  4. 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,這之后的文章和代碼都是基於此版本和開發環境。其他版本和開發環境請相應的變通,大體上差不多。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM