CEF + VS2015开发环境搭建

最近有个小项目,需要用浏览器,又不能直接用ie、firefox、谷歌浏览器,就想用vb做一个简单的浏览器。谁曾想,做好后ie兼容问题一堆,上网看了好多资料,有两种方案比较好:一种用 Qt+QWebEngineView,另一种用cef。 Qt+QWebEngineView生成的程序反映有点慢,应该是我不会优化(呵呵,就想弄个能用的浏览器就行),虽然程序最后体积很大有150MB,但运行慢(也调成release模式,还是慢),一时半会又不会优化,就寻求cef来解决。上网查资料,连续三天总算把程序跑出来了。程序运行速度确实不错,记录过程如下:
一、 准备
1.VS 2015,cmake-3.8.1-win64-x64,CEF 3.2357.1271
2.VS 2015原来安装有VB,加装VC++,Windows Kits调试器。
3.把CEF 3.2357.1271解压到:D:\ cef_binary下。
4.cmake-3.8.1-win64-x64解压到:D:\cmake下。
二、编译libcef_dll
1.打开命令行(cmd.exe),执行:set path=your-cmake-dir/bin;%path%
2.切换到d:\cef_binary\libcef_dll,执行CMake .命令,注意有个“.”
3.使用VS 2015打开d:\cef_binary\libcef_dll目录下的Project.sln
4.选中libcef_dll_wrapper,鼠标右键,属性–>配置属性–>C/C++–>附加包含目录d:\cef_binary
5.属性–>配置属性–>C/C++–>预处理器定义,编辑,新增NOMINMAX宏
6.编译,生成在libcef_dll_wrapper.lib文件,在d:\cef_binary\libcef_dll\debug里。
三、拷贝支撑文件
1.创建一个名为testlibcef项目,Win32类型,空项目,我的项目在d:\myVS\testlibcef\testlibcef下
2.将d:\cef_binary\cefsimple文件夹拷贝到新工程d:\myVS\testlibcef\testlibcef文件夹
3.在testlibcef\testlibcef文件夹下,新建dll文件夹
把d:\cef_binary\Debug目录下的文件全部拷贝到d:\myVS\testlibcef\testlibcef\dll
把d:\cef_binary\resource目录下的文件全部拷贝到d:\myVS\testlibcef\testlibcef\dll
把d:\cef_binary\include文件夹拷贝到d:\myVS\testlibcef\testlibcef\dll(注意是拷贝文件夹)
把d:\cef_binary\libcef_dll\debug\libcef_dll_wrapper.lib文件拷贝到d:\myVS\testlibcef\testlibcef\dll
四、写代码
在工程中添加一些头文件和源文件,把d:\myVS\testlibcef\testlibcef\cefsimple下相关文件包含在项目中,如下
这里写图片描述
把simple_app.cc中的www.google.com替换为www.baidu.com(Google打不开)
五、设置环境相关参数
修改工程的属性了,在解决方案下testlibcef上右键,属性
1. C/C++下的常规的“附加包含目录”添加如下:
d:\myVS\testlibcef\testlibcef
d:\myVS\testlibcef\testlibcef\dll
这里写图片描述
2.C/C++下的预处理器进行修改,加入如下文件:
_DEBUG
V8_DEPRECATION_WARNINGS
BLINK_SCALE_FILTERS_AT_RECORD_TIME
_WIN32_WINNT=0x0602
WINVER=0x0602
WIN32
_WINDOWS
NOMINMAX
PSAPI_VERSION=1
_CRT_RAND_S
CERT_CHAIN_PARA_HAS_EXTRA_FIELDS
WIN32_LEAN_AND_MEAN
_ATL_NO_OPENGL
_HAS_EXCEPTIONS=0
_SECURE_ATL
CHROMIUM_BUILD
TOOLKIT_VIEWS=1
USE_AURA=1
USE_ASH=1
USE_DEFAULT_RENDER_THEME=1
USE_LIBJPEG_TURBO=1
USE_MOJO=1
ENABLE_ONE_CLICK_SIGNIN
ENABLE_REMOTING=1
ENABLE_WEBRTC=1
ENABLE_PEPPER_CDMS
ENABLE_CONFIGURATION_POLICY
ENABLE_INPUT_SPEECH
ENABLE_NOTIFICATIONS
ENABLE_HIDPI=1
ENABLE_EGLIMAGE=1
__STD_C
_CRT_SECURE_NO_DEPRECATE
_SCL_SECURE_NO_DEPRECATE
NTDDI_VERSION=0x06020000
USING_V110_SDK71
ENABLE_TASK_MANAGER=1
ENABLE_EXTENSIONS=1
ENABLE_PLUGIN_INSTALLATION=1
ENABLE_PLUGINS=1
ENABLE_SESSION_SERVICE=1
ENABLE_THEMES=1
ENABLE_AUTOFILL_DIALOG=1
ENABLE_BACKGROUND=1
ENABLE_AUTOMATION=1
ENABLE_GOOGLE_NOW=1
CLD_VERSION=2
ENABLE_FULL_PRINTING=1
ENABLE_PRINTING=1
ENABLE_SPELLCHECK=1
ENABLE_CAPTIVE_PORTAL_DETECTION=1
ENABLE_APP_LIST=1
ENABLE_SETTINGS_APP=1
ENABLE_MANAGED_USERS=1
ENABLE_MDNS=1
ENABLE_SERVICE_DISCOVERY=1
USING_CEF_SHARED
__STDC_CONSTANT_MACROS
__STDC_FORMAT_MACROS
DYNAMIC_ANNOTATIONS_ENABLED=1
WTF_USE_DYNAMIC_ANNOTATIONS=1
这里写图片描述
3. 链接器,常规,附加库目录为:C:\Program Files (x86)\Windows Kits\10\Lib\10.0.10150.0\ucrt\x86
这里写图片描述
4. 链接器,输入,附加依赖项添加:
wininet.lib
dnsapi.lib
version.lib
msimg32.lib
ws2_32.lib
usp10.lib
psapi.lib
dbghelp.lib
winmm.lib
shlwapi.lib
kernel32.lib
gdi32.lib
winspool.lib
comdlg32.lib
advapi32.lib
shell32.lib
ole32.lib
oleaut32.lib
user32.lib
uuid.lib
odbc32.lib
odbccp32.lib
delayimp.lib
credui.lib
netapi32.lib
comctl32.lib
rpcrt4.lib
opengl32.lib
glu32.lib
d:\myVS\testlibcef\testlibcef \dll\libcef_dll_wrapper.lib
d:\myVS\testlibcef\testlibcef \dll\libcef.lib
这里写图片描述
5. 链接器,高级,随机基址、固定基址设为“否”
这里写图片描述
6.配置,常规,字符集设为:使用 Unicode 字符集
这里写图片描述
六、编译运行
编译运行工程,会发生错误
这里写图片描述
把d:\myVS\testlibcef\testlibcef\dll目录下的所有文件拷贝到d:\myVS\testlibcef\Debug目录下重新编译,通过
这里写图片描述
Ok,cef+Vs2015环境就好了。
过程很曲折,耐心很重要,坚持一下就会有收获,千万不能半途而废。作为第一篇博文以资纪念。

2017.5.11东大九龙湖橘园

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
cef3 mfc 测试demo windows vs2015工程 windows vs2015中mfc开发的嵌入式浏览器DEMO,完整工程,包含了库文件libcef_dll_wrapper.lib和libcef.lib。 1、库版本为cef_binary_3.2704.1414.g185cd6c_windows32,引用于http://opensource.spotify.com/cefbuilds/index.html。 如需要其它版本或VS2013/vs2017等编译的库,可以去opensource.spotify.com下载自行编译,编译需要安装 cmake. 2、工程引用于https://github.com/xiaonaiquan/CEF3,github上缺少了上面的库。 3、此工程为MFC工程,只适用于WINDOWS。opensource.spotify.com中的原装示例不是MFC的,而是标准windows库的。 使用的cef版本为cef_binary_3.2704.1414.g185cd6c_windows32 此demo编译,VS2015 实现了C++和js交互 使用CEF时,加载的网页,如果里面有链接,指定target=”_blank”,则会弹出一个新的浏览窗口。如果想禁掉,让新页面在当前浏览窗口中显示,可以在browser进程的handler里重写CefLifeSpanHandler的OnBeforePopup方法,用browser的mainFrame加载popup请求的url 使用flash的方法在我CSDN博客中,把代码加入进来就可以了。 browser和render进程分别继承CefAPP test.html是网页测试用例 解决flash有黑框 : http://blog.csdn.net/zhuhongshu/article/details/77482985 实现下载功能(是网页上触发下载,并不是MFC触发下载) GO按钮增加了快捷键回车 增加F5刷新 增加前进和后退按钮 增加右键和F12开发者选项调试网页 增加cookie 参考 : https://github.com/xiaonaiquan/CEF3 http://opensource.spotify.com/cefbuilds/index.html

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值