前言

上一篇中vs2010+cef3的90.6.0版实现把cef3嵌入到mfc窗口,实现了mfc部分窗口嵌入cef3;
下面连续测试基于soui2下的cef3测试。
但是,有个坑经过2天测试才明白,用的cef3版本太新了(目前最新),所以从https://cef-builds.spotifycdn.com/index.html处找到2017年的cef_binary_3.3071.1649.g98725e6_windows32版,同时新建工程SouiWizard4,终于实现。

准备

下载cef_binary_3.3071.1649.g98725e6_windows32,用cmake编译,这部分就不说了。
然后CEF330【此处文件夹名称加上版本号,如果cef版本多,可以更细些】

关于这些文件夹中文件构成,参考上一篇文章。

把该文件放在项目文件夹里面

这里主要是参考菜鸟与 cef 的邂逅之旅(四):Soui 离屏渲染封装 Cef3 细节分析
以及其源码
【因为源码是vs2015,我的是vs2010,所以采取不同版本的cef3进行重新测试】

主要部分

项目->属性->C/C+±>代码生成->运行库:多线程调试/MTd

SouiWizard4.cpp中添加

#include "Cef3Loader.h"namespace SOUI
{class SMsgLoopCef : public SMessageLoop{public:virtual BOOL OnIdle(int nIdleCount){    Cef3Loader::DoMessageLoop();return __super::OnIdle(nIdleCount);}};class SMsgLoopFactory : public TObjRefImpl<IMsgLoopFactory>{public:virtual SMessageLoop *CreateMsgLoop(){return new SMsgLoopCef;}virtual void DestoryMsgLoop(SMessageLoop *pMsgLoop){delete pMsgLoop;}};
}theApp->RegisterWindowClass<SCef3Window>();// Cef3: InitializeCef3Loader::Initialize();// Cef3: MessageLoopIMsgLoopFactory *pMsgLoopFac = new SMsgLoopFactory;theApp->SetMsgLoopFactory(pMsgLoopFac);pMsgLoopFac->Release();

然后继续添加

#ifdef _DEBUG
#pragma comment(lib,"CEF3/lib/x86/Debug/libcef.lib")
#pragma comment(lib,"CEF3/lib/x86/Debug/libcef_dll_wrapper.lib")#else
#pragma comment(lib,"CEF3/lib/x86/Release/libcef.lib")
#pragma comment(lib,"CEF3/lib/x86/Release/libcef_dll_wrapper.lib")#endif

属性----vc++ 目录—包含目录 增加CEF330;

把4个文件夹添加到现有项

Cef3Loader.h和Cef3Loader.cpp复制到工程目录,并添加现有项

stdafx.h中添加

#include "browser/Browser.h"
#include "controls/SCef3Window.h"
#include "common/ClientApp.h"
#include "event/ExtendEvents.h"

提醒

运行时不但需要把C:\test\SouiWizard4\SouiWizard4\CEF330\bin\x86\Debug和C:\test\SouiWizard4\SouiWizard4\CEF330\Resources都复制到Debug下

还需要去https://cef-builds.spotifycdn.com/cef_binary_3.3071.1649.g98725e6_windows32_client.tar.bz2中下载解压把cefclient.exe拷入

release下还需要:忽略特定库libcmt.lib

关于版本,cef_binary_90.6.0+g02ae459+chromium-90.0.4430.85_windows32是肯定不行的,触发意外中断,这部分有时间在慢慢调试(cef3几个关键函数都变了)
这个cef_binary_3.3071.1649.g98725e6_windows32前面的肯定可以,至于后面的估计有部分版本也可以。

界面


运行js

具体源码下载地址 vs2010+soui2+cfe3.3071实现js调用

题外话:本来想简单点,但是由于版本过高,再调试过程中查了很多资料,对cef3有了进一步了解,这也算走弯路的收获了。

在这源码中有几个htm是echarts例子,如

目前手头有个项目想加入,这也是这次学习cef3的初衷,下面准备把浏览器换为cef3

vs2010+soui2+cfe3.3071实现js调用相关推荐

  1. 关于ActiveX控件开发、js调用

    控件制作: 32位控件制作 参考:32位控件制作 64位控件制作 参考:一.创建:二.界面:三.js调用 说明:64位控件的js调用我按上述教程制作,调用可以,但是控件中没有文章中说的控件中显示的那行 ...

  2. js调用ios的方法

    摘要 在做h5应用的时,有时有些功能js并不能实现的特别完美.比如下载进度条或上传文件进度等.如果能调用ios或者android的方法,实现进度,以及文件上传或者下载列表更好一些.如果使用第三方的js ...

  3. three.js 调用网络摄像头

    three.js 调用网络摄像头 <!DOCTYPE html> <html lang="en"><head><title>thre ...

  4. 兼容低版本迅雷的js调用

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML>  <HEA ...

  5. Node.js调用C#代码

    https://github.com/tjanczuk/edge 运行的时候会报 System.DllnotfoundException 无法加载node.dll,要把\packages\Edge.j ...

  6. iOS WKWebView JS原生交互之JS调用OC(附demo)

    Demo下载地址:https://github.com/msbaby520/WKWebViewJSCallOC 2019.02.26 更新 注意: iOS12起不再支持UIWebView,请采用WKW ...

  7. JS调用PageMethods(转)

    操作步骤: 1.新建一个WebApplication项目,取默认设置. 2.双击设计界面,进入后天代码编辑界面,代码如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ...

  8. WCF系列之.net(4.0) 在网站使用Js调用Wcf Rest

    上一篇,我们介绍了如何使用JS去调用WCF.但实际开发中,各大网站的API都是REST风格,那我们也REST下,顺便用JS调用. 废话不多说,我就把几个比较重要的代码贴下: 接口: using Sys ...

  9. 关于datagrid中控件利用js调用后台方法事件的问题

    前台调用后台方法除了用button的click事件,还可以用js调用  一.前台页面如图 需求点击这个按钮触发后台事件,从而能够调用存储过程 <epoint:HyperLinkColumn He ...

最新文章

  1. 指针小白:修改*p与p会对相应的地址的变量产生什么影响?各个变量指针的长度为多少?...
  2. RewriteCond和13个mod_rewrite应用举例Apache伪静态
  3. 软件工程:需求分析的20条法则
  4. python怎么安装matplotlib-[Python]一步步安装numpy,matplotlib
  5. Suffix Zeroes
  6. vue 导出_Vue核心知识:8.3 vuex在vue-cli中的应用,文件之间的导出与引入
  7. Mysql学习总结(64)——Mysql配置文件my.cnf各项参数解读
  8. SHELL字符串使用总结
  9. springboot动态切换数据源_Springboot整合Mybatis注解实现动态数据源切换
  10. orangepi香橙派安装VNC Viewer远程桌面
  11. OPhone的多媒体模块支持的三种不同数据源
  12. 不要只关注马斯克猎鹰,中国SpaceX在哪?商业航天我们不能缺席!
  13. linux服务器之间的文件同步(双向同步unison+inotify)
  14. 日历本(给出年份生成日历)
  15. P7939 [B1] Alice Wins(easy version)
  16. 2020年Web前端学习网站导航
  17. 立方体图片的在线绘制与制作
  18. 今天开始学Convex Optimization:第2章 背景数学知识简述
  19. hibernate - mappedby的理解
  20. 大学物理复习笔记——光学

热门文章

  1. 虚拟内存管理的作用/好处
  2. 8、HDFS内存存储策略支持和“冷热温”存储
  3. idea-图标工具栏(启动类,推拉,maven)界面消失-树形结构目录-定位图标消失
  4. dda算法控制电机_求PWM速度控制系统是通过脉宽调制器对大功率晶体管的开关时间进...
  5. 提高编程思维的python代码
  6. 智能交通用到的一些技术
  7. 为啥我安装R包总出现‘...had non-zero exit status.‘??
  8. WGS84与Web Mercator
  9. cod16一进单机就断开服务器无响应,使命召唤16刚登录进游戏就闪退
  10. Hash 浅谈哈希算法