从零开始搭建基于CEFGlue的CB/S的winform项目
基于CEF,用.net包装过的Xilium.CefGlue/3,基于此框架可以很方便在你的winform等C/S项目中搭建一个内建的浏览器
Chromium Embedded Framework (CEF)是个基于Google Chromium项目的开源Web browser控件,支持Windows, Linux, Mac平台。
CEFGlue是此C++写就CEF类库的C# 移植版。基于此类库,我们可以很方便的在我们的winform等C/S项目中嵌入Chrome浏览器。
当我们在项目中引入了CEFGlue类库之后,我们还需要引入CEF类库,因为我们需要通过P/Invoke来调用CEF类库的C++方法。因此如果我们想要在我们的C/S项目中引入浏览器就需要通过引入这两个类库了。
大概就介绍到这里了。一开始,我们部门的经理叫我去维护一个已有的项目,并尝试优化。该项目就是一个单机版的应用,由于客户的需要(客户的仓库比较偏远,连不上网,因此,只能用C/S来做,但是界面winform的界面又丑,如果用wpf,又耗内存,而且部门没有回WPF的,如果使用GDI+以及重绘控件,又麻烦,当时他们赶时间,因此就有了此项目-基于Chrome内核的CB/S项目)。经理叫我去了解下,项目代码都给我了,一开始就是懵逼啊,尽管以前玩过webbrowes控件,但那是基于IE,而且是已经封装好的,引用下就行,不麻烦,这会可以全新的东西,还是没有听过的,于是,就想着自己来试试吧,找资料,然后自己搭个demo,跑起来,这样的话,理解会更深。说干就干,一顿搜狗和百度,找到了一些资料,如下:
基于.net开发chrome核心浏览器【二】
基于QT的webkit与ExtJs开发CB/S结构的企业应用管理系统
Xilium.CefGlue与CEF库的版本匹配关系
有了这些基础,不再对CEF两眼抹黑了,当然我没有去研究内核实现。于是我便开始自己搭建了,哎,说起来都是泪啊,满屏的英文资料,看的眼睛疼,不过还是熬过来了,下面介绍下吧,首先给两个官网链接,分别是CEFGlue和CEF的下载路径:
https://bitbucket.org/xilium/xilium.cefglue/downloads/
http://opensource.spotify.com/cefbuilds/index.html
具体怎么用,请参考:
使用CEF(CEFGLUE)作为您的客户端UI(一)
一定要注意CEFGlue和CEF的版本的对应,要不然会有问题。
其次就是CEF版本的下载了:
我一开始下载的是debug和release,这两个都是只有dll的,没有什么用,后来我下载了Simple版的,就是windows Client的,下载解压后把release下的文件复制到了winform bin下的release就可以了.
注意,一定要对应CEF与CEFGlue的版本,下载CEF要下载Simple的那个(就我而言,我是这么多的,其余版本的你要是也可以运行,也可以下载)
从零开始搭建基于CEFGlue的CB/S的winform项目的更多相关文章
- 从零开始搭建口袋妖怪管理系统(4)-借助webpack4.6工程化项目(上)
"手动是不可能手动的了,这辈子都不可能手动的了." 一.目标 上一章我们借助ngRoute,完成了口袋妖怪SPA系统的多模块导航开发,但是现在引用的东西越来越多,项目文件目录开始变 ...
- [IOS]从零开始搭建基于Xcode7的IOS开发环境和免开发者帐号真机调试运行第一个IOS程序HelloWorld
首先这篇文章比较长,若想了解Xcode7的免开发者帐号真机调试运行IOS程序的话,直接转到第五部分. 转载请注明原文地址:http://www.cnblogs.com/litou/p/4843772. ...
- mac下搭建基于vue-cli 3.0的Element UI 项目
1.安装yarn管理工具(包含node.js); 2.安装全局vue-cli全家桶: yarn global add @vue/cli 3.创建.测试一个vue-cli项目: vue create a ...
- 从零开始搭建FAQ引擎--基于ES的字面匹配
从零开始搭建FAQ引擎--基于ES的字面匹配
- 从零开始搭建一个简单的基于webpack的vue开发环境
原文地址:https://segmentfault.com/a/1190000012789253?utm_source=tag-newest 从零开始搭建一个简单的基于webpack的react开发环 ...
- 基于 Hexo 从零开始搭建个人博客(二)
阅读本篇前,请先配置好相应的环境,请仔细阅读教程 基于 Hexo 从零开始搭建个人博客(一). 原文链接:基于 Hexo 从零开始搭建个人博客(二) 前言 博客搭建过程遇到任何问题,优先在本页面搜索, ...
- 基于 Hexo 从零开始搭建个人博客(五)
阅读本篇前,请先阅读前几篇文章: 基于 Hexo 从零开始搭建个人博客(一) 基于 Hexo 从零开始搭建个人博客(二) 基于 Hexo 从零开始搭建个人博客(三) 基于 Hexo 从零开始搭建个人博 ...
- Linux编程之从零开始搭建RPC分布式系统
我一毕业进公司就接触到了RPC,主要是使用前辈们搭建好的RPC框架以及封装好的RPC函数进行业务开发,虽说使用RPC框架开发已经近半年了,但一直想知道如何从零开始搭建起这么一个好用的分布式通信系统框架 ...
- mybatis学习笔记(五) -- maven+spring+mybatis从零开始搭建整合详细过程(附demo和搭建过程遇到的问题解决方法)
文章介绍结构一览 一.使用maven创建web项目 1.新建maven项目 2.修改jre版本 3.修改Project Facts,生成WebContent文件夾 4.将WebContent下的两个文 ...
随机推荐
- 仿qq最新侧滑菜单
为了后续对这个项目进行优化,比如透明度动画.背景图的位移动画,以及性能上的优化. 我把这个项目上传到github上面,请大家随时关注. github地址https://github.com/sungu ...
- 排列熵算法简介及c#实现
一. 排列熵算法简介: 排列熵算法(Permutation Entroy)为度量时间序列复杂性的一种方法,算法描述如下: 设一维时间序列: 采用相空间重构延迟坐标法对X中任一元素x(i)进行相空间 ...
- SpriteBuilder中返回的对象类型不正确的原因
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 最近在码代码的时候,发现一个问题,特此写出来和大家分享,希望遇到 ...
- UNIX网络编程——网络层:IP
一.IP数据报格式 IP数据报格式如下: 版本:IP协议版本号,长度为4位,IPv4此字段值为4,IPv6此字段值为6 首部长度:以32位的字为单位,该字段长度为4位,最小值为5,即不带任何选项的IP ...
- java实现:将一个数逆序输出
前面我们用C语言实现过这个程序,其实java也一样的,很多步骤跟C差不多,但是有些接口和特性可能不同: import java.util.Scanner;//要使用scanner这个类,就需要导入一个 ...
- Java中四大代码块的执行顺序(附code)
验证证的方法是写code,如下: public class test { static class A { public static String name = "hello"; ...
- 谈谈Ext JS的组件——布局的使用方法
概述 在Ext JS中,包含两类布局:组件类布局和容器类布局.由于有些组件是有不同的组件组合而成的,如字段就由标题和输入框构成,他们之间也是存在布局关系的,而这就需要组件类布局来处理组件内自己特有的布 ...
- iOS 使用AVAudioPlayer开发录音功能
最近要做一个类似对讲的功能,所以需要用到录音上传,然后再播放的功能. 一.音频格式分析 因为之前没研究过音频这块,所以很多音频格式都是第一次见. AAC: AAC其实是"高级音频编码(adv ...
- VC2010工程依赖不再自动链接
发现 VC2010 Express 设置了 Project Dependencies 之后并没有自动链接. 而在VC2008中工程依赖不仅影响构建顺序,也会自动链接依赖项. 具体说明见: http: ...
- BAT Android工程师面试流程解析+还原最真实最完整的一线公司面试题
尊重原创,转载请写明原文出处:http://blog.csdn.net/sk719887916/article/details/47040931 (skay) 求职和我们每个人息息相关,而求职也有门道 ...