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
工程和代码结构是了解一套代码最基本的入口,了解了代码结构,基本上就知道这套代码要做什么,大体上如何去做的。先看图

- 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,这之后的文章和代码都是基于此版本和开发环境。其他版本和开发环境请相应的变通,大体上差不多。
CEF3开发者系列之工程和代码结构的更多相关文章
- CEF3开发者系列之CEF3入门
CEF全称Chromium Embedded Framework,是一个基于Google Chromium 的开源项目.Google Chromium项目主要是为Google Chrome应用开发的, ...
- 敏捷开发松结对编程系列:L型代码结构案例StatusFiltersDropdownList(中)
这是松结对编程的第22篇(专栏目录). 接前文 业务代码 比较长,基本上就是看被注释隔开的三大段,先显示状态群筛选链接,然后是单个状态筛选,然后是显示下拉框的当前选中项,最后显示下拉框. public ...
- CEF3开发者系列之进程和线程
CEF3是一个多进程架构框架,如果有了解过chromium的进程架构的,那么就很容易了解CEF3的多进程了.打开CEF3源代码中发布的cefclient实例,如果打开的页面带有flash或者其他插件. ...
- CEF3开发者系列之JS与C++交互之二
本文翻译自JavaScriptIntegration (https://bitbucket.org/chromiumembedded/cef/wiki/JavaScriptIntegration).本 ...
- CEF3开发者系列之JS与C++交互之一
JS与Native交互是相对于比较困难的技术,在学习这门技术之前,我们先了解下浏览器内核中的JS引擎与chromium内核的V8引擎相关知识.在浏览器应用中,JS与本地代码互相调用,得益于浏览器内核对 ...
- CEF3开发者系列之进程间消息传递
在使用CEF3作为框架开发过程中,实现WebSockets.XMLHttpRequest.JS与本地客户端交互等功能时,需要在渲染(Render)进程和浏览(Browser)进程中传递消息.CEF3在 ...
- CEF3开发者系列之类和接口
CEF3基本的框架包含C/C++程 序接口,通过本地库的接口来实现,而这个库则会隔离宿主程序和 Chromium&Webkit的操作细节.它在浏览器控件和宿主程序之间提供紧密的整合,它支持用户 ...
- CEF3开发者系列之Cookies管理和共享
涉及网页登录相关的技术,Cookies肯定是忽略不了的.由于项目的需要,要做一个双核的产品.双核间切换会涉及到登录状态的问题,共享Cookies是一个很好的方案.既然涉及到共享cookies,那么读取 ...
- CEF3开发者系列之Cookies管理和共享<转>
原帖地址:https://www.cnblogs.com/guolixiucai/p/6994559.html 涉及网页登录相关的技术,Cookies肯定是忽略不了的.由于项目的需要,要做一个双核的产 ...
随机推荐
- Linq 中的 left join
Linq 中的 left join 表A User: 表B UserType: Linq: from t in UserType join u in User on t.typeId equal u. ...
- editplus中使用emmet?
要用emmet生成html类型, 格式是: html:???, 意思是 都是html大类型, 小类型用冒号. 如:html:5, 或者全部都是! 则生成html5的类型文档. emmet是zen co ...
- php 计算字符串长度
在项目的开发中,常常遇到要计算一个字符串的长度(中英文结合),由于产品要求不同,每个中文的长度要求也不一样. 解决utf-8编码下的字符串长度(可自定义每个中英文算几个字节) /** * 计算字符串长 ...
- Android布局属性大全
RelativeLayout http://wenku.baidu.com/view/2e39724333687e21af45a97e.html?from=related&hasrec=1 h ...
- Supervisor 安装与配置
Supervisor是一个进程监控程序. 满足的需求是:我现在有一个进程需要每时每刻不断的跑,但是这个进程又有可能由于各种原因有可能中断.当进程中断的时候我希望能自动重新启动它,此时,我就需要使用到了 ...
- fullPage 全屏滚动【上下滚动】效果
由于个人能力,研究了两天,终于写出来了. 又花了一天的时间成功的将30多行脚本,改成了70多行,我也是够有心的了. 那么接下来就是我制作这个效果的全部过程. 那一年我十七,她十八,在那个夏天里,我们, ...
- 关于R中的mode()和class()的区别
本文原创,转载请注明出处,本人Q1273314690(交流学习) 说明:本文曾经在15年11月在CSDN发过,但是由于CSDN不支持为知笔记的发布为博客的API功能,所以,自今天起,转移到博客园(幸好 ...
- 动态调用web服务
通常我们在程序中需要调用WebService时,都是通过“添加Web引用”,让VS.NET环境来为我们生成服务代理,然后调用对应的Web服务.这样是使工作简单了,但是却和提供Web服务的URL.方法名 ...
- hdu.1044.Collect More Jewels(bfs + 状态压缩)
Collect More Jewels Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Othe ...
- 谈谈使用echarts过程中踩过的坑
小结: 1. 使用jquery获取json对象遇到的问题 由于自己对ajax用的还不熟练,之前都是拷贝别人的代码拿来用的,这次自己写的时候倒是碰到好多麻烦一一列举如下: 1.1 在$ 与ajax之间还 ...