cef和debugView入门

CEF入门

# [CEF中文教程(google chrome浏览器控件) – CEF简介]
嵌入式Chromium框架(简称CEF) 是一个由Marshall Greenblatt在2008建立的开源项目,它主要目的是开发一个基于Google Chromium的Webbrowser控件。CEF支持一系列的编程语言和操作系统,并且能很容易地整合到新的或已有的工程中去。

它的设计思想政治就是易用且兼顾性能。CEF基本的框架包含C/C++程序接口,通过本地库的接口来实现,而这个库则会隔离宿主程序和Chromium&Webkit的操作细节。它在浏览器控件和宿主程序之间提供紧密的整合,它支持用户插件,协议,javascript对象以及javascript扩展,宿主程序可以随意地控件资源下载,导航,下下文内容和打印等,并且可以跟Google Chrome浏览器一起,支持高性能和Html5 技术,

浏览器事件:
JavaScript扩展:
框架总览:所有的文件前缀都是Cef
框架的建立和销毁:
平台无关:
框架接口:
CefBrowser是主要的浏览器窗口类,可以用静态的函数CreateBrowser() 和CreateBrowserSync() 来创建一个新的浏览器窗口。
CefFrame 代表一个浏览器窗口的框架,每个浏览器窗口有一个顶层的主框架,而这个主框架可以用GetMainFrame() 方法得到。
CefClient是主浏览器窗口的代表接口,这个接口做为参数传递给CreateBrowser()
CefRequest 代表URL,方法,发送数据和头文件等这样的请求。
CefSchemeHandleFactory 类是被用来处理像myscheme://mydomain类似客户计划的请求 CefReadHandler和CefWriteHandle是一个读写数据的简单接口。
CefV8Handler,CefV8Value和CefV8Context是被用来创建和访问JavaScript对象。

DebugView入门

# DebugView 调试入门
debugview 可以捕获程序中由TRACE(debug版本)和OutputDebugString输出的信息。
支持Debug、Release模式编译的程序(即该软件捕获的是exe直接运行时,抛出的信息,而不是Visual Studio调试时的),
甚至支持内核程序,
而且能够定制各种过滤条件,让你只看到关心的输出信息,而且可以定制高亮显示的内容等等,非常方便。

一、System.Diagnostics.Debug.Write方法(Debug模式生成的exe)
二、System.Diagnostics.Debugger.Log方法(Debug与Release通用)
三、Kernal32.dll中的OutputDebugString方法(Debug与Release通用)

1
2
3
System.Diagnostics.Debug.WriteLine("测试DebugView!!deg");
System.Diagnostics.Debugger.Log(0, null, "测试DebugView!!release");
OutputDebugString("测试DebugView!JianKunKing");

# DebugView使用笔记
https://blog.csdn.net/a200800170331/article/details/52415709
1. 什么是DebugView?
它是Sysinternals公司的系列调试工具。可以捕获程序中由TRACE()和OutputDebugString输出的信息。
2. C++需要完成哪些工作呢?
将打印的信息用OutputDebugString输出,示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include "stdio.h"  
using namespace std;

#define UseDebugView
#ifdef UseDebugView
#include "windows.h"
char g_Debug[256];
#endif

int main()
{
int sum = 0;
#ifdef UseDebugView
sprintf_s(g_Debug, 256, "FJL---【循环求和】[In]\n");
OutputDebugStringA(g_Debug);
#endif
for (int i = 0; i < 5;i++)
{
sum += i;
//printf("sum is %d!\n", sum);
}
#ifdef UseDebugView
sprintf_s(g_Debug, 256, "FJL--【循环求和】[Out]\n");
OutputDebugStringA(g_Debug);
#endif
return 0;
}

如果我们能在debugview看到输出的信息,是不是一定程度就可以调程序了呢?!

3. DebugView需要完成的工作?
首先,设定DebugView的View条件,如下所示:
然后,运行程序,观察DebugView界面显示字符串:

总结:
C++设置我们期望的执行位置提示字符串;DebugView观察是否按照预期将其输出,根据输出的信息,便可以推断出代码问题所在。

调试工具不是万能的,只是一种辅助!!!

# DebugView 调试
https://blog.csdn.net/a379039233/article/details/79413497

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// Test_Console.cpp : 定义控制台应用程序的入口点。
//
捕捉Release模式的Win32程序输出的调试信息,请选中“Capture Global Win32”选项.
可以远程捕获!
#include "stdafx.h"
#include <Windows.h>
#include <atlstr.h>
#define DEBUG_VIEW

int main()
{
int cnt = 0;
while (1) {
#ifdef DEBUG_VIEW
CString str;
str.Format(_T("Module: %d\r\n"),cnt++);
//sprintf_s(buf,"%d\n",cnt);
//TRACE(_T("Module: %d\r\n"), cnt);
OutputDebugString(str);
Sleep(100);
#endif
}
return 0;
}

其它:
程湘之间:DebugView

knowledge is no pay,reward is kindness
0%