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下相关文件包含在项目中,如下
CEF + VS2015开发环境搭建
把simple_app.cc中的www.google.com替换为www.baidu.com(Google打不开)
五、设置环境相关参数
修改工程的属性了,在解决方案下testlibcef上右键,属性
1. C/C++下的常规的“附加包含目录”添加如下:
d:\myVS\testlibcef\testlibcef
d:\myVS\testlibcef\testlibcef\dll
CEF + VS2015开发环境搭建
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
CEF + VS2015开发环境搭建
3. 链接器,常规,附加库目录为:C:\Program Files (x86)\Windows Kits\10\Lib\10.0.10150.0\ucrt\x86
CEF + VS2015开发环境搭建
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
CEF + VS2015开发环境搭建
5. 链接器,高级,随机基址、固定基址设为“否”
CEF + VS2015开发环境搭建
6.配置,常规,字符集设为:使用 Unicode 字符集
CEF + VS2015开发环境搭建
六、编译运行
编译运行工程,会发生错误
CEF + VS2015开发环境搭建
把d:\myVS\testlibcef\testlibcef\dll目录下的所有文件拷贝到d:\myVS\testlibcef\Debug目录下重新编译,通过
CEF + VS2015开发环境搭建
Ok,cef+Vs2015环境就好了。
过程很曲折,耐心很重要,坚持一下就会有收获,千万不能半途而废。作为第一篇博文以资纪念。

2017.5.11东大九龙湖橘园