4. 关于CEF3 使用的一些记录及仓颉端封装的情况
-
接口
cef 导出了两套接口,一个c++ api 和 c api, c api 基于libcef.dll库导出的接口,可以直接使用c 调用,比较基础,多数功能需要封装。 c++ api 就是二次编译的 libcef_dll_wrapper, 是对libcef导出的c接口的封装和调用, 里边包含许多平台相关的封装和调用,包括gpu的调用优化,沙箱功能的优化使用,配置相当复杂,使用简单。 -
版本
133 以上版本capi 部分关于v8相关接口,结构命名发生了些许变化。 api 调用前需要调用cef_api_hash.h 提供的接口后续调用才能成功。
const char *hash = cef_api_hash(CEF_API_VERSION, 0);LOG_DEBUG("hash: %s\n", hash);if (strcmp(hash, CEF_API_HASH_PLATFORM))
138 版本后增加了启动器, 使用沙箱功能需要将代码打包为动态库,使用cef提供的启动器来启动。这个版本想要导出接口给其他语言使用,有沙箱功能时比较困难。
-
gpu 问题
不管是使用c++api还是capi 都需要给可执行程序添加清单文件,不然会导致gpu报错,渲染出现问题。而当导出动态库给其他语言调用时这部分问题暂时没有找到解决方法,所以只能禁用gpu。 -
仓颉封装
通过导出和封装capi , 结合仓颉端结构映射可实现仓颉端cef调用。
项目地址:https://gitcode.com/Cangjie-SIG/cj-cef