回顾

上期我们使用最新版本的cef,编译libcef_dll_wrapper。编译libcef_dll_wrapper

本期我们开始将libcef_dll_wrapper嵌入我们自建的工程

操作步骤

新建窗口程序

因为是cef105版本,因此使用VS2019

引入工程libcef_dll_wrapper

参照cefsimple对cef105进行改造

cefsimple与cefclient的区别

  • 相比之下,cefclient更像一个成熟的浏览器,为了自身的测试页面,新增了不少业务接口,代码也较为复杂

  • cefsimple更类似一个简单的窗口嵌入页面,与实际的产品设计较为符合

  • cefsimple未发现,C++与JS互相调用的入口,需要新增

  • cefsimple对于一些视频的播放,同样是支持的,因此参照的时候,决定选择cefsimple进行改造

关键步骤

  • 新增ClientApp类,继承于CefApp、CefBrowserProcessHandler

  • 新增继承于CefWindowDelegate、CefBrowserViewDelegate的派生类

  • 项目需要定义宏CEF_USE_SANDBOX,使用沙箱

  • 运行后白屏,要求创建manifest文件放在项目根目录下,否则程序无法识别系统版本

过程中遇到的编译问题

  • debug下引入cef_sanbox.lib,会报错,需要在预处理器下申明_HAS_ITERATOR_DEBUGGING=0

  • cef_sanbox.lib参与编译后,报错无法解析的外部符号 __imp_WSASetLastError,需要在项目的静态库输入中添加ws2_32.lib

  • cef_sanbox.lib参与编译后,报错无法解析的外部符号 VerQueryValueW,需要在项目的静态库输入中添加version.lib

  • cef_sanbox.lib参与编译后,报错无法解析的外部符号 __imp_SetupDiGetClassDevsW,需要在项目的静态库输入中添加setupapi.lib

  • cef_sanbox.lib参与编译后,报错无法解析的外部符号  __imp_InitPropVariantFromCLSID,需要在项目的静态库输入中添加Propsys.lib

  • cef_sanbox.lib参与编译后,报错无法解析的外部符号  PowerDeterminePlatformRoleEx,需要在项目的静态库输入中添加PowrProf.lib

  • cef_sanbox.lib参与编译后,报错无法解析的外部符号  __imp_IsOS,需要在项目的静态库输入中添加shlwapi.lib

  • cef_sanbox.lib参与编译后,报错无法解析的外部符号  __imp_timeEndPeriod,需要在项目的静态库输入中添加Winmm.lib

  • cef_sanbox.lib参与编译后,报错无法解析的外部符号  __imp_SymCleanup,需要在项目的静态库输入中添加dbghelp.lib

  • cef_sanbox.lib参与编译后,报错无法解析的外部符号  __HrLoadAllImportsForDll,需要在项目的静态库输入中添加Delayimp.lib

总结

以上 ,即完成了对libcef_dll_wrapper的简单嵌入,后续文章将描述,参照cefclient,分离app、browser、render等对象,新增JS与C++相互调用。

将libcef_dll_wrapper嵌入自建独立工程相关推荐

  1. 初建FreeMarker工程

    初建FreeMarker工程 --IT唐伯虎 背景:听说freemarker可以用来写页面的组件,热衷于编写可重用代码的我,迫不及待地研究了freemarker,不过,在写组件之前,还是先研究一下fr ...

  2. 沁恒MCU从EVT中提取文件建立MounRiver独立工程

    沁恒的MCU程序开发包简称EVT,是沁恒官方给出的芯片使用参考例程. EVT开发包为了减少体积,将很多工程的文件复用. 当修改一个公用文件(像link.ld,StdPeriphDriver文件夹中的库 ...

  3. IntelliJ IDEA 多个独立工程管理

    说明 大多数时候,一个大的mvn工程下有多个独立的小工程,每次修改代码需要单独的打开这些独立的小工程,编码很不方便.于是新建一个顶级目录将全部的独立工程放入,无赖IntelliJ打开顶级项目,下面的工 ...

  4. Win7 搭建NodeJs、Vue2、Vue3,基于 vue-cli 创建建vue工程及相关问题解决思路

    Win7 搭建NodeJs.Vue2.Vue3,基于 vue-cli 创建建vue工程及相关问题解决思路 安装NodeJs NodeJs 相关配置 安装vue和vue脚手架 安装 webpack 打包 ...

  5. ccs 移植创建新工程_CCS-6-新建TMS320F28335工程(可移植)).pdf

    使用 CCS 6 新建 TMS320F28335 工程 本例程以 CCS 6.0下新建 TMS320F28335工程为例.用CCS 5,或者新建TI的其它处理 器工程的区别也不大,参考本例即可. 所建 ...

  6. WPF真入门教程02--新建WPF工程

    在VS开发环境安装完成之后,首先我们先新建一个WPF工程,然后对工程目录结构啥的要有所了解才行. 打开VS2019 工程建好之后,WPF应用程序"会在"引用"里面自动添加 ...

  7. 独立个人博客有什么用?建独立博客有何意义?

    正如标题所说,独立个人博客有什么用?自己建个独立的博客的意义何在?个人站长为什么要建立自己的独立个人博客网站,它存在的价值和意义是什么? 首先来谈谈为什么我不用新浪博客,QQ空间等等这些非常优秀的公共 ...

  8. 成都大数据科技产业园5月开建 一期工程年底建成

    挖掘机轰鸣.大货车进出--昨日8点刚过,位于崇州经开区的成都大数据科技产业园暨四川省信息安全产业示范园区产城一体建设项目--产业园区四横四纵道路及配套设施工程施工场地就忙碌起来了. "作为四 ...

  9. 北京市住建委:明确智慧工地的做法内容和认定关键点,筑智建助力工程行业全面数字化

    近日,北京市住房和城乡建设委员会印发<北京市房屋建筑和市政基础设施工程智慧工地做法认定关键点>,对智慧工地做法内容进行细化说明,并明确智慧工地认定关键点. 北京市房屋建筑和市政基础设施工程 ...

最新文章

  1. 禁止 Python 子类覆盖父类方法
  2. Fedora 30系统的升级方法
  3. 《LeetCode力扣练习》第121题 买卖股票的最佳时机 Java
  4. 一文深度解析线性表的前世今生!!!
  5. 无法启动程序,因为计算机中丢失msvcr.dll
  6. HALCON示例程序inspect_bga.hdev测量bga焊点缺陷
  7. 类库java_Java类库和常用类库介绍
  8. protobuf android ndk,直接在Android NDK端使用tensorflow(不使用JAVA api)
  9. I/O操作不占用CPU的任何线程
  10. arduino运行java_调试在Arduino MKR1000上运行的Arduino Uno代码
  11. 爬虫中国天气网数据并可视化
  12. NLPIR中文分词器的使用
  13. 计算机的好与坏作文,电脑“坏”了的作文
  14. ParameterResolutionException单元测试方法中添加了参数,这是不允许的
  15. 【超全超详细】2W字零基础黑客学习路线,知识体系(附学习路线图)
  16. C#使用Microsoft.office.interop.PowerPoint生成PPT
  17. 有色金属行业数字化之路探析
  18. 测绘专业计算机编程要求,关于一些测绘圈子的信息,你需要了解!
  19. 如何向老板提加薪或升职要求?
  20. ajax请求后台传body格式数据,服务器@RequestBody需要注意实相符

热门文章

  1. 2016猴年春节有感,学习android
  2. TCP/IP四层模型简述
  3. 膜分离类毕业论文文献有哪些?
  4. CMake 入门教程
  5. .net core 解释 wwwroot 存放文件的原理
  6. 关于After Effects中文版变英文版
  7. CCF-2020-12-2 期末预测之最佳阈值(低俗题)-你留的眼泪,我来帮你拭去~~~
  8. 设置阿里云镜像仓库 Docker下载镜像太慢的解决方案
  9. Oracle语法 及 SQL题目(二)
  10. 原来这样给手机充电,对电池伤害这么大!