C++
文章平均质量分 53
和木匠
这个作者很懒,什么都没留下…
展开
-
deepinV20.7编译和安装llvm8.x
deepinV20.7编译和安装llvm8.x原创 2022-10-12 20:19:59 · 455 阅读 · 1 评论 -
谷歌浏览器的源码分析(作者:蔡军生)&&Chrome源码剖析(作者:duguguiyu)
谷歌浏览器的源码分析(1)谷歌浏览器的源码分析(2)谷歌浏览器的源码分析(3)谷歌浏览器的源码分析(4)谷歌浏览器的源码分析(5)谷歌浏览器的源码分析(6)谷歌浏览器的源码分析(7) 谷歌浏览器的源码分析(8)谷歌浏览器的源码分析(9) 谷歌浏览器的源码分析(10)谷歌浏览器的源码分析(11)谷歌浏览器的源码分转载 2014-06-13 16:14:18 · 4580 阅读 · 0 评论 -
下载chrome代码并编译
http://blog.163.com/cp7618@yeah/blog/static/702347772012812115555171转载 2014-06-30 14:30:41 · 1498 阅读 · 0 评论 -
Chromium源代码工程目录分析
总体概览Chromium分为3个大模块(包括第三方库):浏览器,渲染器,WebKit。浏览器负责主进程,UI展现和I/O。渲染器一般是由浏览器调用的标签子进程。它嵌入WebKit中做布局和渲染。你应该熟读多进程架构和Chromium如何显示web页。快速介绍sln文件有2个sln文件,chrome.sln是使用V8引擎的普通版本,chrome_kjs.sln转载 2014-07-04 15:26:29 · 1757 阅读 · 0 评论 -
介绍Chromium的多进程架构
为什么引入多进程架构?在Chromium引入多进程架构之前,当前流行的浏览器都采用单进程实现,例如FireFox,IE,Safair等,浏览器所有的标签页都运行在同一个进程中,当某个标签页崩溃时(可能由于渲染引擎的缺陷或者网页的恶意攻击等原因),就会导致整个浏览器崩溃。此时其他运行正常的标签页也随着浏览器的崩溃而被强行关闭,标签页中未保存的数据也就自然丢失了。随着浏览器功能越来越丰富,比如转载 2014-07-04 15:29:08 · 824 阅读 · 0 评论 -
下载Chromium源码方法及问题记录
下载Chromium源码方法及问题记录系统:win7 64bit or ubuntu官方网址:http://www.chromium.org/developers/how-tos/build-instructions-windows 1、下载depot_tools: a) windows 地址:https://src.chromium.org/svn/t转载 2014-06-16 13:44:12 · 14019 阅读 · 0 评论 -
理解WebKit和Chromium: 浏览器综述
# 浏览器简介浏览器发展到今天还是很令人吃惊的,这很大程度上得益于互联网的快速发展和新的技术不断涌现。浏览器的核心是渲染引擎,通常也称为浏览器的内核,其是将文本,图片等信息渲染成图像,这也是浏览器的主要功能。现代浏览器的始祖应该是1993发布的Mosaic,其领导者Marc Andreessen也就是Netscape浏览器的创始人。刚开始,其功能很简单,也就是能渲染简单的静态HTM转载 2014-06-17 15:19:25 · 1314 阅读 · 0 评论 -
理解WebKit和Chromium:Chromium资源磁盘缓存
## 概述想象一下,如果没有磁盘缓存的世界。当用户访问网页的时候,每次浏览器都需要从网站下载网页,图片,JS等资源,这其实费力又不讨好。解决这一问题的方法就是将之前浏览器下载的资源保存下来,存到磁盘中,以备今后使用。当然,资源有时效性,也会变的不再有效,所以有相应的退出机制来解决这一问题。在现代浏览器中,绝大多数浏览器都有磁盘缓存机制,因为它确实能够提高网页的加载速度,能够省去了网络的时间转载 2014-06-17 16:47:34 · 896 阅读 · 0 评论 -
Chromium开发--入门C++小例子
开始做Chromium开发的时候,都是从代码去摸索的,现在有几个例子了。希望看到的同学能有帮助,比直接在大量代码里领悟要快很多了。C++ in Chromium 101 - Codelabhttp://www.chromium.org/developers/cpp-in-chromium-101-codelab0) hel转载 2014-06-17 16:48:39 · 1754 阅读 · 0 评论 -
理解WebKit和Chromium: WebKit资源加载机制
## 概述回顾整个渲染过程,本系列介绍了HTML文本到DOM到Render树及RenderLayer树,以及后面的绘图等,这里面还缺了一块重要部分,就是WebKit如何加载各种资源和网络栈。这里资源是指WebKit从网络或者本地文件系统获取的各种信息,例如HTML文本,JavaScript文本等。本章将介绍WebKit如何获取资源以及如何高效的管理资源。 ## 资源及资源相关类转载 2014-06-17 16:32:58 · 747 阅读 · 0 评论 -
Chrome多进程调试
Chrome的多进程模型给DEBUG带来了很大的挑战。一、如果你设置代码的断点,默认情况下,VS只会跟踪那些在主进程Browser代码中的那些断点。VS提供了"Attach To Process"的方法。比如当Render Process启动之后,可以用菜单"Debug"=>"Attach To Process"选项,选择那个新产生的进程,然后在你需要跟踪的代码处设置断点,就可以。但是这种转载 2014-06-17 16:55:28 · 1248 阅读 · 0 评论 -
好用的程序构建工具scons
目录:第一章:编译和安装SCons第二章:简单编译第三章:编译相关的一些事情第四章:编译和链接库文件第五章:节点对象第六章:依赖性第七章:环境第八章:自动将命令行选项赋值给Construction变量1、安装Python因为SCons是用Python编写的,所以你必须在使用SCons之前安装好Python。你在安装Python之前,应该注意查看Pytho转载 2016-10-13 17:39:08 · 3549 阅读 · 0 评论 -
视频会议十大开源项目排行
在视频会议领域,有许多可以值得参考的开源项目,这些开源项目有的是协议栈、有的是编码器或者是传输协议,由于视频会议系统是一个综合性的应用系统,里面包含功能较多,如能把这些开源项目选择性的加入我们的视频会议开发当中,我们的开发效率肯定会事半功倍,下面我们列举一下视频会议相关的十大开源项目,并对其重要性及优缺点做一个全面的评价与排名。1、 OpenH323项目 (★★★★★)转载 2017-06-28 20:31:36 · 604 阅读 · 0 评论 -
在QT对话模中用webengine 无法加载WEB页的问题
最近在帮着同时写一些代码,基于QT开发界面,其中一个功能是要在一个模态窗口中嵌入一个webview然后显示一个页面。本来很简单的一个事,结果还遇上事儿了。,就是用模态显示窗口时,webview显示一片空白。没有任何显示。代码如下: HtmlDialog *dlg = new HtmlDialog(parent); dlg->exec();后来才发现,这种模式下,应用被设置成了整个应原创 2017-08-10 11:00:56 · 2065 阅读 · 1 评论 -
多平台QT中文乱码问题解决办法
最近项目中遇到不少的Qt中文乱码的问题,主要原因是客户的需求比较多,Qt版本有用4的版本的也有用5的版本,并且还有windows与linux跨平台的需求。经常出现个问题是windows的解决了,源代码放到linux上编译不通过或者中文会乱码,本文主要是得出一个解决方案能解决Qt的中文问题,并支持不同平台与不同版本。下面我们通过下列场景中的问题来找寻答案:场景1:Qt版本: Qt原创 2017-07-26 21:55:36 · 459 阅读 · 0 评论 -
OBS源码修改小记
今天因为有一个项目的需要,看了一下OBS的代码,在里面加了一个算定的类。这个类是基于QT的,发现编译不过,后来看了一下才发现这个OBS项目是用CMake编译的,所以就把新加的类得加入到这个CMakeLists.txt,否则会编译不过set(obs_HEADERS${obs_PLATFORM_HEADERS}${obs_libffutil_HEADERS}obs-app.hpp原创 2017-08-31 18:20:11 · 3354 阅读 · 0 评论 -
FFMPEG相关
http://blog.csdn.net/ddddggyyss/article/details/38657971转载 2017-10-28 20:52:38 · 1294 阅读 · 0 评论 -
在Android手机中搭建Dnsmasq后续
之前写了一篇关于如何在Android手机中搭建Dnsmasq的文章,使用起来比较繁琐,现在做一个详细的整理。### 准备工作下载dnsmasq.zip备用。(链接: https://pan.baidu.com/s/1hrG4GQw 密码: k8kg)### 测试系统是否支持init.d,将下面的代码保存为00test,放置于/system/etc/init.d目录。转载 2017-10-15 10:32:19 · 4009 阅读 · 0 评论 -
chromium源代码结构
Chrome源代码结构首先,开始接触Chrome的童鞋可能有一个疑惑,Chrome和Chromium是同一个东西吗?答案是,Chrome是Google官方的浏览器项目名称,Chromium是Google官方对Chrome开源项目。说白了就是Chrome是Google自己的官方浏览器版本,而Chromium是开源项目,所有有兴趣的开发者都可以参加,Chromium中出现的新技术如果经过测试是转载 2014-06-12 15:32:40 · 1107 阅读 · 0 评论 -
获取 Chromium 源代码以及环境配置
一、获取代码a) 不下载代码,直接浏览,到这里:http://src.chromium.org/viewvc/chrome/ 或者这里:http://code.google.com/p/chromium/source/search b) 快速下载代码包(tarball),到这里:http://chromium-browser-source.commondatastorage.goo原创 2014-06-12 15:52:09 · 1081 阅读 · 0 评论 -
Google Chromium开发文档-初级入门指南
Google Chrome开源版本chromium的编译构建指南,此译文为编译构建指南的一部分,初级入门指南,主要为windows平台下Visual Studio的编译过程指导如果你是很认真的想学习Chromium是如何工作的,那么此文档就是专为你准备的。你将得到Chromium的代码然后编译它。然后你将使用Visual Studio 2005debugger调试它,看它是怎样运行的,转载 2014-06-12 15:57:03 · 5387 阅读 · 0 评论 -
OCX控件签名
即便是经常被人批评,但是OCX,还是存在很多年了,在经后很多年,它都还将存在着。因为在有的环境下,简单的b/s开发技术是达不到需求的。比如访问硬件设备,比如安全防护。因此我们还要用到OCX的。但是要想在正式的场合下,在WEB界面上用OCX,需要进行签名。否则很多时候浏览器会禁止加原创 2011-10-09 11:44:12 · 2268 阅读 · 0 评论 -
可变参数宏在windows和linux下是同的
对于C/C++,可变参数宏在windows和linux下是同的。需要分别定义,否则会引起莫明其妙的错误。#if defined (WIN32)#define LOG(fmt, args...) do{if(P11Enginer::logFile) \fpri原创 2011-09-15 15:22:23 · 1032 阅读 · 0 评论 -
用C++编译 Openssl Engine及分享一个Openssl Engine模板框架
众所周知 openssl是一个用c 语方实现的开源加密库。所以一般情况下,大家也习惯于迁就openssl的这一习惯,在实现engine的时候,总是优先选择c语言来实现。但是c++也是不错的。采用c++还有一个好处就是可以把代码,写得比c更好管理和阅读以及维护。原创 2011-10-19 11:15:28 · 2020 阅读 · 0 评论 -
基于CSP的硬件无关OpenSSL Engine分析与实现
注:这是一篇多年以前写的文章了。现在记录在这儿供大家参考吧 【摘要】本文介绍了OpenSSL Engine、CSP的原理及Windows CryptoAPI。分析了OpenSSL Engine实现机制,总结了OpenSSL Engine开发的基本步骤,并实现一种基于CSP的O原创 2011-10-17 13:28:11 · 4530 阅读 · 0 评论 -
将P12/Pfx文件导入到支持CSP的硬件安全模块
需要说明的是,数字证书应该尽可能的由CA在签发证书成功后,直接写入到USBKEY中。这样的安全性更高。但是在实际使用中,有的时候证书是已经存在并且和私钥一起保存在p12/pfx文件中,这样可以在一定程度上减少在证书撤销,重新签发的工作。在这种情况下,用户不希望重新签发证书,需希望将现有证书写入到硬件模块中。通过WinCryptoAPI可以方便的写出这样的工具。最近就遇到了这种情况,虽然在此之前我已原创 2011-10-18 17:45:51 · 1403 阅读 · 0 评论 -
VC++使用静态库,msvcrt.lib连接错误
一个库被编译成了静态库,在工程中使用该静态库,进行链接的时候报如下错误msvcrt.lib(ti_inst.obj) : error LNK2005: "private: __thiscall type_info::type_info(class type_info const &)" (??0type_info@@AAE@ABV0@@Z) 已经在 libcmt.lib(typinfo.obj原创 2011-10-21 09:21:02 · 9856 阅读 · 1 评论 -
Windows RES协议
在IE里输入以下“网址”,看看出来什么了?res://shell32.dll/2/131res://C:\WINDOWS\system32\drivers\estbus.sys/16/1res://notepad.exe/16/1res://shell32.dll/16/1是不是可以用来分析 exe dll sys 的版本呢?只要符合 Win32转载 2011-10-26 09:42:28 · 935 阅读 · 0 评论 -
jce 私钥与OPENSSL私钥文件的版本兼容性及DER编码转换
因为openssl 1.0以前的版本对私钥编码方式和PKCS#8私钥编码方式有点不同.如果你查看PKCS#8,你可以看到私钥的ASN.1 module如下:PrivateKeyInfo ::= SEQUENCE { version Version, privateKeyAlgorithm AlgorithmIdentifier {{PrivateKeyAlgorithms}},原创 2011-10-15 13:53:16 · 1988 阅读 · 0 评论 -
TrueCrypt原理与系统开发(3):TrueCrypt Mount卸载虚拟磁盘
第三部分、TrueCrypt Mount卸载虚拟磁盘 加载虚拟磁盘之后,可以创建受虚拟磁盘加密保护的文档,之后卸载虚拟磁盘,创建的文档则加密保存在加密卷中,这步操作起来比较简单,那么,在TrueCrypt实际是如何实现的呢? TrueCrypt另一个核心函数卸载虚拟磁盘函数UnmountVolume,接受三个函数,分别是传入的窗口句柄、磁盘分区的序号和是否强制卸转载 2012-06-01 14:41:20 · 806 阅读 · 0 评论 -
TrueCrypt原理与系统开发(1):TrueCrypt Format创建加密卷
一、概述 TrueCrypt是唯一的一款支持Windows Vista/XP/2000/Linux开源的虚拟加密磁盘软件,能够创建和设置加密的虚拟磁盘镜像,虚拟磁盘可以与其它磁盘一样正常访问,内部所有文件都会自动加密,需要通过密码来进行访问,加密和解密都是实时的。 TrueCrypt主要分为两部分;一部分是TrueCrypt Format,用来创建加密卷,另外一部分是T转载 2012-06-01 14:35:22 · 707 阅读 · 0 评论 -
TrueCrypt原理与系统开发(2):TrueCrypt Mount加载虚拟磁盘
第二部分、TrueCrypt Mount加载虚拟磁盘 在创建完加密卷之后,怎么使用虚拟磁盘呢?这个时候需要加载虚拟磁盘,加载完虚拟磁盘后,就会在磁盘分区里多出一个分区,比如在我的电脑里可以看到一个新的本地磁盘 (L:)。那么,TrueCrypt里具体是怎么实现的?首先需要选择我们在上一步创建的加密卷,选择一个需要加载的分区,这其实就是在还没用到的分区卷标里选择一个,之后点击载入载转载 2012-06-01 14:40:18 · 680 阅读 · 0 评论 -
编译truecrypt for android
Truecrypt介绍:TrueCrypt是一款免费开源的绿色虚拟加密盘加密软件,不需要生成任何文件即可在硬盘上建立虚拟磁盘,用户可以按照盘符进行访问,所有虚拟磁盘上的文件都被自动加密,需要通过密码来进行访问。TrueCrypt 提供多种加密算法,包括:AES-256, Blowfish (448-bit key), CAST5, Serpent, Triple DES, and Twofish,转载 2012-06-01 14:38:10 · 1704 阅读 · 0 评论 -
开发Linux系统下的磁盘加密方法详解
随着智能手机的计算能力和存储能力的提高,手机中将会存放越来越多的私有数据,这些数据的泄密可能造成严重后果。手机信息安全一直是我们的重点之一,对于一些重要的功能我们要求鉴权后才能使用,但这只能挡住初级的黑客,只能防君子不能防小人,所以我们希望把重要的数据进行加密后再保存。为此,今天花了一点时间去了解Linux 磁盘加密的方法。 ecryptfs下载并编译http://people.r转载 2012-06-01 10:54:49 · 744 阅读 · 0 评论 -
TrueCrypt原理与系统开发(4):TrueCrypt Mount更改加密卷密码
第四部分、TrueCrypt Mount更改加密卷密码 在实际的应用中,TrueCrypt可以很好地与业务系统相结合,比如,为不同的用户创建各自的加密卷,用户登录业务系统即加载各自的虚拟磁盘,那么面对业务系统中平常的修改密码操作,TrueCrypt也能够应付自如。 在TrueCrypt中,提供了修改加密卷密码的接口,该函数在TrueCrypt中的原型是转载 2012-06-01 14:44:54 · 757 阅读 · 0 评论 -
如何编译TrueCrypt 7.0a源码
TrueCrypt是一款开源的虚拟加密磁盘工具,目前最新版本是7.0a,本文以该版本源代码为基础,介绍了如何在VC2008下进行编译。 环境配置1. Microsoft Visual Studio 2008 SP1 (VC++ 2008) 2. Microsoft Visual Studio VC++ 1.523. NASM version 2.07 com原创 2012-06-21 11:15:56 · 1536 阅读 · 0 评论 -
chromium编译
本文主要讲解源码下载与编译,适用:vs2010+ninja编译,windows7+windows 8 sdk平台。源码下载、代码同步0,官方参考文档:http://www.chromium.org/developers/how-tos/get-the-code1,准备vpn,如果没有vpn,碰到gfw抽风的时候,非常抓狂,使用vpn省心省力。2,安装msysgit,转载 2014-06-26 15:17:36 · 4422 阅读 · 0 评论 -
Chromium源码获取与编译--附加一个简单例子的编译
Chromium源码获取与编译--附加一个简单例子的编译转载 2014-06-13 16:07:24 · 1793 阅读 · 1 评论 -
ECC算法分析--openssl的实现以及其调用流程 .
ecc的过程与rsa相比有很大的不同,ecc涉及到了很多额外的概念,比如group等等,另外ecc包含两套截然不同的机制,这就是ecdsa和ecdh,这两套机制统一于ecc,在非ecc算法中,这两套机制是由两个独立的算法实现的,比如对于加密/解密以及签名/验证这一类需求来说使用的转载 2011-10-15 13:59:26 · 7113 阅读 · 4 评论