关闭

[置顶] Go学习笔记

##Go语言 - Go是一种开放源码的程序设计语言,它意在使得人们能够方便地构建简单、可靠、高效的软件。 - Go有时被称为“类C语言”或“21世纪的C”。从C中,Go集成了表达式语法、控制流语句、基本数据类型、按值调用的形参传递、指针,但比这些更重要的是,继承了C所强调的程序要编译成高效的机器码,并自然地与所处的操作系统提供的抽象机制相配合。...
阅读(1388) 评论(1)

CEF3:与 JavaScript 整合(三)—— IPC 通信

本篇介绍如何通过发送 IPC 消息实现 JS 回调函数的异步调用。实现方法渲染进程端: 1、实现 CefV8Handler 以注册 JS 回调函数 2、在 CefRenderProcessHandler::OnContextCreated() 中绑定函数到 window 对象 3、实现 CefRenderProcessHandler::OnProcessMessageReceived() 处理...
阅读(121) 评论(0)

CEF3:与 JavaScript 整合(二)

本篇续:CEF3:与 JavaScript 整合(一)本篇讲解如何通过消息路由,将 JS 发送的请求路由到浏览器进程来处理。消息路由消息路由发生在浏览器进程和渲染进程之间,通过消息路,CEF将运行在渲染进程的 JS 消息发送到浏览器进程,并在浏览器进程中通过执行 C++ 代码做出响应。整个过程都是异步进行的。实现步骤CEF 抽象出了两个类来分别表示路由的两端: CefMessageRouterBro...
阅读(94) 评论(0)

CEF3:与 JavaScript 整合(一)

CEF 中的 JavaScript CEF 利用 V8 JS 引擎来实现 JS。 浏览器中的每一个 frame 都有自己的 JS 上下文,JS 只能在该上下文中执行。 JS 只能在渲染进程中的 TID_RENDERER 线程中执行。 有关 JS 回调的接口都包含在 CefRenderProcessHandler 中,因此我们要实现这个接口来对 JS 进行扩展。这个接口一般由 CefApp 实现...
阅读(139) 评论(0)

CEF3:CEF3多进程

CEF3 使用多进程。其中包括:一个浏览器进程、一个渲染进程和若干其他进程(插件进程、gpu进程等)。 浏览器进程处理窗口的创建和绘制,以及网络访问等,浏览器进程包含了应用程序的主要逻辑。 渲染进程负责渲染 HTML 以及执行 JavaScript ,访问 DOM 等。 其他进程则进程插件处理,或者 gpu 处理,如果有的话。 多个进程之间通过 IPC (Inter-Process Communic...
阅读(212) 评论(0)

CEF3:CEF3关闭流程

CEF3关闭流程如下: 用户点击关闭按钮,发送 WM_CLOSE 消息。 在 WM_CLOSE 中调用 TryCloseBrowser() 并返回 false,表示取消关闭窗口。 调用 JS 的 onbeforeunload 方法,如果允许关闭,则4,否则处理结束。 则调用 JS 的 onunload 方法。 调用 CefLifeSpanHandler::DoClose() 方法,可以重写该方法以处...
阅读(80) 评论(0)

CEF3:用CEF3实现最简单的浏览器

本例开发环境:WIN10 + VS2015如果还没有编译CEF3库,请见:Windows下用VS2015编译CEF3创建一个空的 Windows 应用程序,命名为 SimpleBrowser,如下图: 新建 main.cpp ,编写如下代码:#include "include/cef_app.h" #include "include/cef_browser.h" #include "inc...
阅读(377) 评论(0)

CEF3:Windows下用VS2015编译CEF3

下载并解压首先下载二进制发布包,下载地址为:CEF Automated Builds,本例下载的版本是:cef_binary_3.3029.1619.geeeb5d7_windows32.tar.bz2。注意可能需要代理才能下载。下载后解压到合适的目录。解压后的目录结构大致如下:[解压目录] |-include -- 头文件目录 |-Debug -- 编译好的CEF库,D...
阅读(333) 评论(0)

WinDbg调试:配置和查看符号

设置符号路径利用环境变量设置符号路径在WinDbg启动时,会根据 _NT_ALT_SYMBOL_PATH 和 _NT_SYMBOL_PATH 的值设置符号路径:> set _NT_ALT_SYMBOL_PATH="D:\symbols" > windbg notepad.exe利用启动参数设置符号路径可以使用选项 -y 来指定符号路径:> windbg -y "E:\symbols" notepad...
阅读(65) 评论(0)

WinDbg调试:启动和退出

Windbg的启动 绑定到进程 通过指定进程ID绑定 通过选项 -p 指定进程ID: > windbg -p 45480 通过指定进程名称绑定 通过选项 -pn 指定进程名称: > windbg -pn notepad.exe 如果多个进程同名,则报错: There is more than one 'notepad.exe' process running. Fin...
阅读(64) 评论(0)

FreeSWITCH 屏蔽语音激励设置主画面

conf/autoload_configs/conference_layouts.conf.xml 在布局中设置 floor-only="false": <image x="...
阅读(91) 评论(0)

Golang教程:(二十二)信道

原文:https://golangbot.com/channels/ 欢迎来到Golang系列教程的第二十二篇。 在上一篇教程中,我们讨论了如何使用协程实现并发。在这篇教程中,我们将讨论信道以及如何使用信道实现协程间通信。 什么是信道 信道(Channel)可以被认为是协程之间通信的管道。与水流从管道的一端流向另一端一样,数据可以从信道的一端发送并在另一端接收。 声明信道 每个...
阅读(435) 评论(0)

C++ 通过 JNI 调用 Java 代码

简介JNI 是 Java Native Interface 的缩写,它提供了若干的API实现了 Java 和其他语言(主要是 C&C++)的通信。本篇主要介绍通过 C++ 调用 Java 代码的一般方法。本例的开发环境为:WIN10 + VS2015 + JDK1.8.0_131首先我们需要建立一个 Java 项目,为了简单起见,这里没有用到 IDE 。建立 Java 项目建立如下的目录结构:JIN...
阅读(140) 评论(0)

POCO: 日志的使用

入门 #include "Poco/Logger.h" #include "Poco/AutoPtr.h" #include "Poco/ConsoleChannel.h" int main() { /* 1.获取 root logger */ auto &logger = Poco::Logger::root(); /* 2.设置管道 */ Poco::Au...
阅读(206) 评论(0)

VS2015 编译和使用 gRPC

说明本例的环境为:WIN10 + VS2015 gRPC 的版本为: 1.4.2 protobuf 的版本为: 3.3.2准备工作 本例使用 VS2015 进行编译,其他版本的 VS 没有试过,不过大致步骤应该差不多。 确保环境变量 PATH 包含 git.exe 所在目录,因为我们要通过 git 下载 gRPC 源码。 下载并安装 Active State Perl。本例下载的是64:Acti...
阅读(213) 评论(0)

Golang教程:(二十一)协程

原文:https://golangbot.com/goroutines/ 在上一篇教程中,我们讨论了并发,以及并发和并行的区别。在这篇教程中我们将讨论在Go中如何通过Go协程实现并发。 什么是协程 Go协程(Goroutine)是与其他函数或方法同时运行的函数或方法。可以认为Go协程是轻量级的线程。与创建线程相比,创建Go协程的成本很小。因此在Go中同时运行上千个协程是很常见的。...
阅读(661) 评论(0)

Golang教程:(十九)接口 - II

原文:https://golangbot.com/interfaces-part-2/ 欢迎来到Golang系列教程的第十九篇。这是介绍接口的第二篇。如果你还没有阅读第一篇,可以在这里阅读。 用指针接收者实现接口 在 接口 - I 中所有例子都是以值为接收者。也可以使用指针接收者来实现接口。让我们通过一个程序看看这是如何做到的。 package main import "fmt"...
阅读(452) 评论(0)

Golang教程:(十八)接口 - I

原文:https://golangbot.com/interfaces-part-1/ 欢迎来到Golang系列教程的第十八篇。这个接口的第一部分,一共有两部分。 什么是接口 在面向对象语言中,接口一般被定义为 :接口定义了一个对象的行为。它仅仅指定了一个对象应该做什么。具体怎么做(实现细节)是由对象决定的。 在 Go 中,一个接口定义为若干方法的签名。当一个类型定义了所有接口里的方法...
阅读(346) 评论(0)

Golang教程:(十七)方法

原文:https://golangbot.com/methods/ 欢迎来到Golang系列教程的第十七篇。 什么是方法 一个方法只是一个函数,它有一个特殊的接收者(receiver)类型,该接收者放在 func 关键字和函数名之间。接收者可以是结构体类型或非结构体类型。可以在方法内部访问接收者。 通过下面的语法创建一个方法: func (t Type) methodName(par...
阅读(386) 评论(0)

Golang教程:(十六)结构体

原文:https://golangbot.com/structs/ 欢迎来到Golang系列教程的第十六篇。 什么是结构体 结构体(struct)是用户自定义的类型,它代表若干字段的集合。有些时候将多个数据看做一个整体要比单独使用这些数据更有意义,这种情况下就适合使用结构体。 比如将一个员工的 firstName, lastName 和 age 三个属性打包在一起成为一个 employ...
阅读(380) 评论(0)

Golang教程:(十五)指针

原文:https://golangbot.com/pointers/ 这是本Golang系列教程的第十五篇。 什么是指针 指针是存储一个变量的内存地址的变量。 在上图中,变量 b 的值是 156,存储在地址为 0x1040a124 的内存中。变量 a 存储了变量 b 的地址。现在可以说 a 指向 b。 指针的声明 指向类型 T 的指针用 *T 表示。 让我们写一些代码...
阅读(506) 评论(0)
98条 共5页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:39344次
    • 积分:1340
    • 等级:
    • 排名:千里之外
    • 原创:75篇
    • 转载:0篇
    • 译文:23篇
    • 评论:3条
    博客专栏
    文章分类
    最新评论