- 博客(24)
- 资源 (23)
- 问答 (1)
- 收藏
- 关注
转载 chrome源码学习之知识体系指南
google chrome浏览器的源代码是非常庞大的,为了较快的进入学习状态,有必要事先对一些知识点进行说明,这里不是要详细说明里面的细节,而是从概念层次阐明一些注意事项。这里谈到的东西也不一定说非要事先把这些东西搞得很明白才能去学习源代码,主要还是先给大家一个心理准备。当然如果你最终要在细粒度的层次掌握源代码细节,那么这些知识点必须非常清楚,不过这可以结合源代码的时候再针对性的来澄清这些知识点。
2013-07-30 18:01:39 950
转载 chrome源码学习之启动流程简介
先说明一下,我这里采用的chrome源代码版本是4.1.249.1064。如果你采用的不是此版本,则可能和我描述的源代码文件名、代码位置不一致,后续关于chrome的文章均采用此版本,不再另作说明。采用此版本没有任何特殊理由,仅仅是当我开始学习chrome的那个时间点的最新版本而已。另外虽然chrome的版本升级非常快,但其核心体系架构是没有变化的。升级的变更的内容主要体现在下面几个方面:
2013-07-30 17:48:57 1615
转载 chrome源代码目录结构简介(版本4.1.249.1059)
为了对庞大的源码项目进行分析,先对源码目录树作一个简单的介绍,粗略的了解一下各个模块的功能分布情况,chrome源代码src目录下的结构如下图:app:该目录下的代码主要是和各个操作系统平台相关的应用上层代码的提炼。不同操作系统可能对应不同的c++实现文件。比如裁剪板操作、操作系统数据交换接口、资源管理等。代码量不大。base:基础设施代码,该目录下的代码对理解chrome
2013-07-30 17:45:47 1114
转载 MFC中OnTimer的应用
OnTimer()函数用于实现定时控制功能,定时控制功能主要由下面三个函数共同实现:SetTimer, KillTimer()和OnTimer().粗略的说,Settimer是设置一个计时器并开始执行计时器Ontimer中的代码,Ontimer是计时器所执行的代码。KillTimer用于停止计时器。或者说Settimer是设置定时器的,Ontimer是响应Settimer消息的。当Se
2013-07-29 14:27:35 730
转载 MFC ASSERT 详解
在开发过程中我们可以假设只要程序运行正确,某一条件肯定成立。若不成立,那么我们可以断言程序肯定出错。在这种情况下我们可要利用ASSERT来设定断言。ASSERT宏的参数是一个逻辑表达式,在程序运行过程中,若该逻辑表达式为真,则不会发生任何动作;若此表达式为假,则系统弹出一个对话框警告你,并停止程序的执行。同时要求你作出选择:取消、忽略和重试。若你选择取消,则系统将停止程序的运行;若你选择忽略,则系
2013-07-29 14:09:54 677
转载 BYTE、WORD与DWORD类型
在Visual C++ 6.0中,BYTE与WORD,DWORD本质上都是一种无符号整型,它们在WINDEF.H中被定义,定义如下:typedef unsigned char BYTE;typedef unsigned short WORD;typedef unsigned long DWORD; 也就是说B
2013-07-29 10:51:13 2722
转载 ReleaseDC和DeleteDC的区别
今天做一个小软件时需要在界面上重复绘制图形于是写了个函数绘制图形然后在OnPaint()里调用发现低频率的重绘窗口还好 一旦经常重绘窗口就会出现错误应该是内存泄露的错误但是我发现我所有的CDC全都DeleteDC了 怎么会出现这错误了 于是查了下MSDN在ReleaseDC里写着API原文intReleaseDC(CDC*pD
2013-07-29 09:31:53 5618
转载 AFX_msg
AFX_msg在头文件(DrawView.h)中声明消息响应函数原型.消息映射机制是Windows编程的核心内容。Windows下的应用程序也都是通过消息驱动的机制来进行工作的。虽然VC开发环境自带了大量的系统消息处理函数,但我们实际的程序开发过程中总还是避免不了要写一些自定义的消息处理函数以满足所编写的软件功能的需要。那么在VC中如何定义自己的消息处理
2013-07-29 08:51:19 737
转载 过SetRegistrykey的作用
在利用MFC框架的时候,在应用程序应用类的的InitInstance()函数中,初始化时总有一个以下是我在网上找到的一些资料:过SetRegistrykey导致应用程序设置,而不是存储在注册表中。INI文件。名SetRegistryKey这个函数功能是设置MFC程序的注册表访问键,并把读写INI文件的成员函数映射到读写注册表。只要调用
2013-07-26 15:00:40 2940
转载 MFC - InitCommonControls
InitCommonControls和InitCommonControlsEx 从Win95开始,Windows提供了一些新的Win32控件,称为通用控件. 如:Toolbar,Status bar,Tree view,List view,Animation,Hot-key,Image list,Tab等等.这些控件的可执行代码都放在comctl32.dll中.要使用通用控件,必须加载
2013-07-26 14:23:53 1879
转载 VC 中与字符串相关的宏 _T、TEXT,_TEXT、L 的作用
一、 在字符串前加一个L作用: 如 L"我的字符串" 表示将ANSI字符串转换成unicode的字符串,就是每个字符占用两个字节。 strlen("asd") = 3; strlen(L"asd") = 6; 二、 _T宏可以把一个引号引起来的字符串,根据你的环境设置,使得编译器会根据编译目标环境选择合适的(Unicode
2013-07-26 10:33:20 604
转载 防止程序启动两次的方法CreateMutex()
在工程文件中, WinMain函数里加上以下代码(此代码在BCB6.0下运行):HANDLE hMutex = CreateMutex(NULL, false, "Process"); if (GetLastError() == ERROR_ALREADY_EXISTS) { CloseHandle(hMutex);
2013-07-26 10:28:46 3146
转载 C++静态成员函数小结(转)
原文地址:http://hi.baidu.com/quanhaili/blog/item/5a40ba86b37e1b22c65cc38f.html类中的静态成员真是个让人爱恨交加的特性。我决定好好总结一下静态类成员的知识点,以便自己在以后面试中,在此类问题上不在被动。 静态类成员包括静态数据成员和静态函数成员两部分。 一 静态数据成员: 类体中的数据成员的声明前加上s
2013-07-26 09:58:23 584
转载 MFC架构之CWinApp类
CWinApp是一个基类,你通过它来继承Windows应用程序对象。应用程序对象为你提供了初始化应用程序(以及它的每一个实例)和运行应用程序所需的成员函数。它实现主事件循环并把事件分发给MFC中其他类. 每个使用微软基础类库的应用程序都只能包含一个从CWinApp继承的对象。当Windows调用WinMain函数时,这个对象在其它C++全局对象都已经生成并且可用之后才被创建,WinM
2013-07-26 09:18:58 820
转载 CString常用方法简介
CString::Compareint Compare( LPCTSTR lpsz ) const;返回值 字符串一样 返回0 小于lpsz 返回-1 大于lpsz 返回1 区分大小字符 CString s1( "abc" );CString s2( "abd" );ASSERT( s1.Com
2013-07-25 16:44:44 656
转载 C++ - _T含义 C++语言中“_T”是什么意思?
_T("Hello")是一个宏,他的作用是让你的程序支持Unicode编码,因为Windows使用两种字符集ANSI和UNICODE,前者就是通常使用的单字节方式,但这种方式处理象中文这样的双字节字符不方便,容易出现半个汉字的情况。而后者是双字节方式,方便处理双字节字符。 Windows NT的所有与字符有关的函数都提供两种方式的版本,而Windows 9x只支持ANSI方式。 如果你编译一个程序
2013-07-24 08:51:49 2192
转载 #pragma用法详解
Author :Jeffrey My Blog:http://blog.csdn.net/gueter/ 目录:(0) 前言(1) #pragma message能够在编译信息输出窗口中输出相应的信息(2) #pragma code_seg能够设置程序中函数代码存放的代码段,开发驱动程序的时会用到(3) #pragma once若用在头文件的
2013-07-23 17:12:50 713
转载 用C语言的rand()和srand()产生伪随机数的方法总结
标准库(被包含于中)提供两个帮助生成伪随机数的函数:函数一:int rand(void);从srand (seed)中指定的seed开始,返回一个[seed, RAND_MAX(0x7fff))间的随机整数。函数二:void srand(unsigned seed);参数seed是rand()的种子,用来初始化rand()的起始值。可以认为rand()在每次被调用的
2013-07-22 13:25:23 699
转载 c++中冒号(:)和双冒号(::)的用法
转载于:http://fengqing888.blog.163.com/blog/static/3301141620100623933512/1.冒号(:)用法(1)表示机构内位域的定义(即该变量占几个bit空间)typedef struct _XXX{unsigned char a:4;unsigned char c;} ; XXX(2)构
2013-07-22 10:09:35 731
转载 C++ string::size_type 类型
int main(){ string str("Hello World!\n"); cout return 0;} 从逻辑上来讲,size() 成员函数似乎应该返回整形数值,或是无符号整数。但事实上,size 操作返回的是 string::size_type 类型的值。 string 类类型和许多其他库类型都定义了一些配
2013-07-19 10:10:21 873
转载 C++中 public,protected, private 访问标号小结
公有成员public member 在程序的任何地方都可以被访问实行信息隐藏的类将其public 成员限制在成员函数上这种函数定义了可以被一般程序用来操纵该类类型对象的操作私有成员private member 只能被成员函数和类的友元访问实行信息隐藏的类把其数据成员声明为private。 被保护成员protected member 对派生类derived class 就像 public
2013-07-19 09:38:58 719
转载 C++技巧之operator操作符
这篇博文是以前很久写的,贴在我的早期一个blog中,今天google一下,发现还真有不少人转载,可惜并不注明出处。那时觉得operator比较好玩。C++有时它的确是个耐玩的东东。operator它有两种用法,一种是operator overloading(操作符重载),一种是operator casting(操作隐式转换)。1.operator overloadingC++可以通过o
2013-07-18 17:30:56 723
转载 C++之匈牙利命名法
在编程时,变量、函数的命名是一个极其重要的问题。好的命名方法使变量易于记忆且程序可读性大大提高。Microsoft采用匈牙利命名法来命名Windows API函数和变量。匈牙利命名法是由Microsoft的著名开发人员、Excel的主要设计者查尔斯·西蒙尼在他的博士论文中提出来的,由于西蒙尼的国籍是匈牙利,所以这种命名法叫匈牙利命名法。 匈牙利命名法为C标识符的命名定义了一种非常标准
2013-07-18 17:07:47 1570
转载 高质量c++(const成员函数)
const 成员函数任何不会修改数据成员的函数都应该声明为const 类型。如果在编写const 成员函数时,不慎修改了数据成员,或者调用了其它非const 成员函数,编译器将指出错误,这无疑会提高程序的健壮性。以下程序中,类stack 的成员函数GetCount 仅用于计数,从逻辑上讲GetCount 应当为const 函数。编译器将指出GetCount 函数中的错误。c
2013-07-18 09:03:09 661
VisualSVN-5.1.9(官网vs2015及以下版本插件)
2018-06-04
C# double保留4位有效位数采用ToString("G4"),靠谱吗?
2021-05-12
TA创建的收藏夹 TA关注的收藏夹
TA关注的人