chrome 内核CEF 编译和qt 封装(上)

chrome 内核CEF 编译和qt 封装(上)前言 针对 PC 客户端软件而言 在实际开发中如图表等复杂控件如果纯用 c 开发难度很大 而且效果也不是很美好 虽然也有一些专门开源图表库可以使用 但项目中软件开发都是 C S 和 B S 结构 两者各有其优势 B S 结构需要浏览器作为前端页面交互入口 C S 结构需要客户端作为交互入口 是否有相关技术能结合两者优势开发 通过尽可能的一套代码能解决两端多数业务问题呢 CEF 或者其他浏览器内核的出现就解决此问题 一 基础概念 ChromiumEmbe

  前言:

         针对PC 客户端软件而言,在实际开发中如图表等复杂控件如果纯用c++ 开发难度很大,而且效果也不是很美好,虽然也有一些专门开源图表库可以使用,但项目中软件开发都是C/S 和 B/S 结构,两者各有其优势。B/S结构需要 浏览器作为前端页面交互入口。C/S 结构需要客户端作为交互入口,是否有相关技术能结合两者优势开发,通过尽可能的一套代码能解决两端多数业务问题呢,CEF 或者其他浏览器内核的出现就解决此问题。

一、基础概念

Chromium Embedded Framework (CEF)是个基于Google Chromium项目的开源Web browser控件,支持Windows, Linux, Mac平台。除了提供C/C++接口外,也有其他语言的移植版。过多概念不展开,可百度。

二、CEF 编译

    1、准备成果物

直接下载二进制成果物进行相关库的编译,连接: 

https://cef-builds.spotifycdn.com/index.html#windows64

从下图可以找到自己需要版本进行下载:

chrome 内核CEF 编译和qt 封装(上)

2、 准备代码编译工具 cmaKe 、 vs 2019

   cmake 下载官网: https://cmake.org/

   vs 下载官网: https://visualstudio.microsoft.com/zh-hans/

3、  开始编译

(1)下载完的zip 包通过cmake 检出代码。

chrome 内核CEF 编译和qt 封装(上)

 chrome 内核CEF 编译和qt 封装(上)

 chrome 内核CEF 编译和qt 封装(上)

1和 2  步骤后就产生如下工程

chrome 内核CEF 编译和qt 封装(上)

 重点是libcef_dll_wrapper  此库。 编译成功后会产生 libcef_dll_wrapper.lib 和 libcef_dll_wrapper.pdb  两个文件。chrome 内核CEF 编译和qt 封装(上)

 

可以通过cefsimple 例子实现编译的成果物,例如加载百度和自己设计页面,如下:

chrome 内核CEF 编译和qt 封装(上)

 自己通过echars 制作的页面

chrome 内核CEF 编译和qt 封装(上)

 基本上所需要的的内容如下

chrome 内核CEF 编译和qt 封装(上)

chrome 内核CEF 编译和qt 封装(上)

  

 三、 qt 封装 cef 库

    但在实际项目开发过程中 cef 初始化内容比较多,开发流程比较复杂不利于项目开发。因此需要对库进行再次封装,统一初始化流程和相关接口。封装流程和原理下文再分享!

相关类的介绍可查看: 也可通过源代码头文件的英文注释了解

https://www.cnblogs.com/bclshuai/p/12722607.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/228514.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月16日 下午6:50
下一篇 2026年3月16日 下午6:51


相关推荐

  • C语言中的指针详解

    C语言中的指针详解1 指针的定义 C 语言中指针是一种数据类型 指针是存放数据的内存单元地址 计算机系统的内存拥有大量的存储单元 每个存储单元的大小为 1 字节 为了便于管理 必须为每个存储单元编号 该编号就是存储单元的 地址 每个存储单元拥有一个唯一的地址 指针变量除了可以存放变量的地址外 还可以存放其他数据的地址 例如可以存放数组和函数的地址 2 指针的定义和初始化格式 数据类型符 指针变量名 初始地址值 功能 定义指向 数据类型符 的变量或数组的指针变量 同时为其赋初值

    2026年3月18日
    2
  • java打包jar打不开,一文解决springboot打包成jar文件无法正常运行的问题

    java打包jar打不开,一文解决springboot打包成jar文件无法正常运行的问题1 用 intellijidea 创建了一个 springboot 的项目 前期都运行的好好的 在 idea 中可以正常运行 但是打包成 Jar 运行却一直报错 2 经过不懈探索 终于找到解决办法 3 首先 找到 pom xml 把下面的 build 块中的内容改成如下所示 4 然后 请千万不要用 Intellijidea 来打包项目为 Jar 你应该来到项目的根目录 然后用 mvncleanpack 这个命令来打包

    2026年3月17日
    1
  • mysql性能分析工具_中大型suv横向测评

    mysql性能分析工具_中大型suv横向测评因为工作的原因,我有机会仔细用过市面上几乎所有的MySQL管理工具,对各家的数据库管理软件的特性有了全面的了解。我大概用了20+款MySQL管理工具,从种挑出10款最棒的写了今天的测评。其中7款免费或有社区免费版,另外3种是付费版。当初,在研究这些工具时,我发现网上那些所谓的测评推荐文章里,几乎没人真用过自己文章中写的软件,都是云测评。当时就想自己把所有软件都用一遍,找机会写一篇深度横向测评文章,帮助选择困难症患者,选到最合适大家当下工作场景的工具,节省时间。本文所写软件.

    2022年8月22日
    8
  • 使用treesoft下的TreeNMS管理和监控redis服务器

    使用treesoft下的TreeNMS管理和监控redis服务器treesoft 是国产的用于管理和监控数据库的软件 其中的 TreeNMS 可以用来管理和监控 redis 服务器 是基于 javaweb 的环境运行 1 安装 jdk 参考安装配置流程 2 安装 tomcat 1 下载 2 解压 tar zxvfapache tomcat 7 0 96 tar gz 3 移动到 user local 并重命名为 tomcatmvapac tomca

    2026年3月16日
    2
  • Nagios显示器mysql定从库: libmysqlclient.so.18: cannot open shared object file: No such

    Nagios显示器mysql定从库: libmysqlclient.so.18: cannot open shared object file: No such

    2022年1月12日
    46
  • 探寻京东云核心竞争力的源泉「建议收藏」

    探寻京东云核心竞争力的源泉「建议收藏」云计算服务提供商的核心竞争力有哪些?除了技术、产品与服务之外,基础设施亦是不可忽视的一大因素。之所以会如此,是因为云计算是一个堪称“三高”的市场:高技术壁垒、高投资投入、高市场增长,云服务提供商需要保持长期投入,通过规模效应来实现成本优势,从而吸引更多用户采用其相关服务与产品。数据中心等基础设施的建设是云服务提供商实现持续成长的关键所在。数据不会骗人。根据咨询机构SynergyRese…

    2022年10月8日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号