CEF + VS2015开发环境搭建

xiaoxiao2021-02-28  14

最近有个小项目,需要用浏览器,又不能直接用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东大九龙湖橘园

转载请注明原文地址: https://www.6miu.com/read-200267.html

最新回复(0)