1、启动计算机,登录到 *** 作系统桌面,在桌面上找到计算机图标,在上面点击鼠标右键选择属性。
2、点击属性后d出属性界面如下图所示,在左边显示5个选项分别是控制面板主页,设备管理器,远程设置,系统保护,高级系统设置等选项,我们直接点击系统高级设置选项。
3、点击高级设置选项后会d出一个新窗口即系统属性,在系统属性窗口中点击高级页签,注意,要修改这些设置,一定是管理员权限,不然没法修改。
4、在高级页签下面找到性能框,这里主要是设置视觉效果,处理器计划,内存使用,以及虚拟内存,点击设置。
5、点击设置按钮后d出性能选项界面,这里主要有视觉效果、高级、数据执行保护等选项,点击数据执行保护选项卡,电信为除下列选定程序之外的所有程序和服务启用DEP(U),然后点击下方的添加,从硬盘中添加程序。
6、点击添加按钮后d出打开界面,然后找到你使用中遇到停止工作的程序所在目录和名称,鼠标左键选中,然后点击打开,将程序添加到里面。
7、这时候看到已经添加进来的程序名称,如下图所示,接着点击应用,再点击确定,完成设置,记住,点击应用后会d出重新启动计算机的提示框,确定后重新启动系统。
希望以上回答能帮你,望采纳!
上一节中我们讲解了基于CEF浏览器开发的基本方法,并实现了QCefView控件和其核心组件QCefClient。 >>点这里回顾上节内容
先来回顾一下上一节中提到的CEF3应用整体结构:
其中第三条浏览器实例相关的实现在上一节中已经完成了,本篇我们将继续完成另一个核心组件QCefApp的开发,并通过实际使用QCefView,展示如何提供CEF初始化入口,最终完成浏览器核心功能和基本UI的开发。
本篇的小目标:
和CefClient类似,我们的应用程序需要提供一个CefApp的封装,来处理进程相关的回调——这里进程相关的回调对于我们要实现的简单浏览器而言,就是对浏览器进程本身的管理。因此,我们的QCefApp组件头文件声明如下:
和CefClient类似,CefApp也可以通过继承多个接口的方式实现进程级的各类管理。因为我们要实现的简单浏览器暂时不涉及太多复杂的管理,所以这里只简单实现了浏览器进程处理和上下文初始化的接口。同样和CefClient类似,对于CefXXXHandler接口,只需要将引用设为本实例,即可重载对应接口所提供的方法了。
额外说明一点:这里的创建浏览器进程方法里有一个添加ca证书的方法,目前先作为预留,有关ca证书和https的话题在之后的小节中会有专门的讲解。
浏览器上下文初始化、添加和关闭浏览器接口的具体实现如下:
通过上面的实现可以看出,添加浏览器实例进程实际上就是创建了一个QCefClient的引用,并将这个引用和浏览器相关的一些设置传入到静态方法CefBrowserHost::CreateBrowser中。而OnContextInitialized方法通过设置m_contextReady标志确保在创建浏览器实例时CEF上下文已初始化完成。
在完成CefApp组件的实现后,我们已经基本凑齐了启动CEF所需的零件。最后让我们来看看如何把这些零件借助CEF程序入口组装起来。
首先,声明一个QCefContext类,来封装CEF程序入口所需的基本设置和初始化方法:
其中,负责初始化CEF的initCef方法实现如下:
这个初始化方法包含了下面流程:
这里需要特别说明的是,CEF应用在默认情况下包含很多子进程(渲染进程、插件、GPU进程等等),这些进程会共享同一个执行入口。这里我们简单起见,仅就主进程进行处理——从上面的实现可以看到,当检测到当前进程为主进程时,创建一个CefApp的实例即可。这个实例的引用会通过cefApp()方法提供给需要获取CefApp的其他组件使用。
接下来我们来看看如何实际使用上面封装好的程序入口。
首先声明一个继承了QDialog的主窗口MainDlg:
在这个主窗口的构造方法中,会调用初始化QCefView的方法initWebview:
initWebview方法包含了QCefView界面布局相关的一些设置,这里我们略过这些实现,只专注于QCefView本身初始化的流程:
从上面的实现可以看出,这里我们只需要通过CefApp的添加浏览器方法获取QCefClient的引用,并将其提供给QCefView,就能简单完成QCefView控件的创建。
回到整个应用程序的入口,也就是main函数,除了传统Qt应用的实现之外,还需要添加一下CEF入口相关(也就是我们上一小节封装好的QCefContext)的实现:
至此,我们的浏览器应用初版终于完成了。运行一下看看效果:
本节所涉及到的组件及其流程可以总结为下面的时序图:
有关基于CEF的浏览器基本功能的实现,就讲解到这里了。下一节我们将介绍如何基于CEF实现浏览器与页面的互相通信。
>>返回系列索引
[1] Chromium Embedded Framework官网
[2] Chromium Embedded Framework官方教程
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)