将libcef_dll_wrapper嵌入自建独立工程

回顾

上期我们使用最新版本的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++相互调用。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

uulyn

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值