将libcef_dll_wrapper嵌入自建独立工程
以上 ,即完成了对libcef_dll_wrapper的简单嵌入,后续文章将描述,参照cefclient,分离app、browser、render等对象,新增JS与C++相互调用。
回顾
上期我们使用最新版本的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)