![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++
文章平均质量分 67
农村的我
To the world you are the one ,but to me you are the whole world.
展开
-
高质量c++(const成员函数)
const 成员函数任何不会修改数据成员的函数都应该声明为const 类型。如果在编写const 成员函数时,不慎修改了数据成员,或者调用了其它非const 成员函数,编译器将指出错误,这无疑会提高程序的健壮性。以下程序中,类stack 的成员函数GetCount 仅用于计数,从逻辑上讲GetCount 应当为const 函数。编译器将指出GetCount 函数中的错误。c转载 2013-07-18 09:03:09 · 656 阅读 · 0 评论 -
C++之匈牙利命名法
在编程时,变量、函数的命名是一个极其重要的问题。好的命名方法使变量易于记忆且程序可读性大大提高。Microsoft采用匈牙利命名法来命名Windows API函数和变量。匈牙利命名法是由Microsoft的著名开发人员、Excel的主要设计者查尔斯·西蒙尼在他的博士论文中提出来的,由于西蒙尼的国籍是匈牙利,所以这种命名法叫匈牙利命名法。 匈牙利命名法为C标识符的命名定义了一种非常标准转载 2013-07-18 17:07:47 · 1561 阅读 · 0 评论 -
C++技巧之operator操作符
这篇博文是以前很久写的,贴在我的早期一个blog中,今天google一下,发现还真有不少人转载,可惜并不注明出处。那时觉得operator比较好玩。C++有时它的确是个耐玩的东东。operator它有两种用法,一种是operator overloading(操作符重载),一种是operator casting(操作隐式转换)。1.operator overloadingC++可以通过o转载 2013-07-18 17:30:56 · 720 阅读 · 0 评论 -
C++中 public,protected, private 访问标号小结
公有成员public member 在程序的任何地方都可以被访问实行信息隐藏的类将其public 成员限制在成员函数上这种函数定义了可以被一般程序用来操纵该类类型对象的操作私有成员private member 只能被成员函数和类的友元访问实行信息隐藏的类把其数据成员声明为private。 被保护成员protected member 对派生类derived class 就像 public转载 2013-07-19 09:38:58 · 717 阅读 · 0 评论 -
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 · 866 阅读 · 0 评论 -
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 · 720 阅读 · 0 评论 -
用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 · 691 阅读 · 0 评论 -
MFC中OnTimer的应用
OnTimer()函数用于实现定时控制功能,定时控制功能主要由下面三个函数共同实现:SetTimer, KillTimer()和OnTimer().粗略的说,Settimer是设置一个计时器并开始执行计时器Ontimer中的代码,Ontimer是计时器所执行的代码。KillTimer用于停止计时器。或者说Settimer是设置定时器的,Ontimer是响应Settimer消息的。当Se转载 2013-07-29 14:27:35 · 724 阅读 · 0 评论 -
#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 · 710 阅读 · 0 评论 -
chrome源码学习之启动流程简介
先说明一下,我这里采用的chrome源代码版本是4.1.249.1064。如果你采用的不是此版本,则可能和我描述的源代码文件名、代码位置不一致,后续关于chrome的文章均采用此版本,不再另作说明。采用此版本没有任何特殊理由,仅仅是当我开始学习chrome的那个时间点的最新版本而已。另外虽然chrome的版本升级非常快,但其核心体系架构是没有变化的。升级的变更的内容主要体现在下面几个方面:转载 2013-07-30 17:48:57 · 1604 阅读 · 0 评论 -
chrome源代码目录结构简介(版本4.1.249.1059)
为了对庞大的源码项目进行分析,先对源码目录树作一个简单的介绍,粗略的了解一下各个模块的功能分布情况,chrome源代码src目录下的结构如下图:app:该目录下的代码主要是和各个操作系统平台相关的应用上层代码的提炼。不同操作系统可能对应不同的c++实现文件。比如裁剪板操作、操作系统数据交换接口、资源管理等。代码量不大。base:基础设施代码,该目录下的代码对理解chrome转载 2013-07-30 17:45:47 · 1106 阅读 · 0 评论 -
chrome源码学习之知识体系指南
google chrome浏览器的源代码是非常庞大的,为了较快的进入学习状态,有必要事先对一些知识点进行说明,这里不是要详细说明里面的细节,而是从概念层次阐明一些注意事项。这里谈到的东西也不一定说非要事先把这些东西搞得很明白才能去学习源代码,主要还是先给大家一个心理准备。当然如果你最终要在细粒度的层次掌握源代码细节,那么这些知识点必须非常清楚,不过这可以结合源代码的时候再针对性的来澄清这些知识点。转载 2013-07-30 18:01:39 · 939 阅读 · 0 评论 -
C++ - _T含义 C++语言中“_T”是什么意思?
_T("Hello")是一个宏,他的作用是让你的程序支持Unicode编码,因为Windows使用两种字符集ANSI和UNICODE,前者就是通常使用的单字节方式,但这种方式处理象中文这样的双字节字符不方便,容易出现半个汉字的情况。而后者是双字节方式,方便处理双字节字符。 Windows NT的所有与字符有关的函数都提供两种方式的版本,而Windows 9x只支持ANSI方式。 如果你编译一个程序转载 2013-07-24 08:51:49 · 2167 阅读 · 0 评论 -
C++中的预编译指令
本文内容收集自网络,仅供自己学习和大家交流之用,如果侵犯了您的权益,请及时通知,会及时撤下!预处理过程扫描源代码,对其进行初步的转换,产生新的源代码提供给编译器。可见预处理过程先于编译器对源代码进行处理。在C语言中,并没有任何内在的机制来完成如下一些功能:在编译时包含其他源文件、定义宏、根据条件决定编译时是否包含某些代码。要完成这些工作,就需要使用预处理程序。尽管在目前绝大多数编译器都转载 2013-08-02 10:28:50 · 718 阅读 · 0 评论 -
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 · 648 阅读 · 0 评论 -
防止程序启动两次的方法CreateMutex()
在工程文件中, WinMain函数里加上以下代码(此代码在BCB6.0下运行):HANDLE hMutex = CreateMutex(NULL, false, "Process"); if (GetLastError() == ERROR_ALREADY_EXISTS) { CloseHandle(hMutex);转载 2013-07-26 10:28:46 · 3136 阅读 · 0 评论 -
MFC架构之CWinApp类
CWinApp是一个基类,你通过它来继承Windows应用程序对象。应用程序对象为你提供了初始化应用程序(以及它的每一个实例)和运行应用程序所需的成员函数。它实现主事件循环并把事件分发给MFC中其他类. 每个使用微软基础类库的应用程序都只能包含一个从CWinApp继承的对象。当Windows调用WinMain函数时,这个对象在其它C++全局对象都已经生成并且可用之后才被创建,WinM转载 2013-07-26 09:18:58 · 817 阅读 · 0 评论 -
C++静态成员函数小结(转)
原文地址:http://hi.baidu.com/quanhaili/blog/item/5a40ba86b37e1b22c65cc38f.html类中的静态成员真是个让人爱恨交加的特性。我决定好好总结一下静态类成员的知识点,以便自己在以后面试中,在此类问题上不在被动。 静态类成员包括静态数据成员和静态函数成员两部分。 一 静态数据成员: 类体中的数据成员的声明前加上s转载 2013-07-26 09:58:23 · 577 阅读 · 0 评论 -
VC 中与字符串相关的宏 _T、TEXT,_TEXT、L 的作用
一、 在字符串前加一个L作用: 如 L"我的字符串" 表示将ANSI字符串转换成unicode的字符串,就是每个字符占用两个字节。 strlen("asd") = 3; strlen(L"asd") = 6; 二、 _T宏可以把一个引号引起来的字符串,根据你的环境设置,使得编译器会根据编译目标环境选择合适的(Unicode转载 2013-07-26 10:33:20 · 601 阅读 · 0 评论 -
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 · 1870 阅读 · 0 评论 -
过SetRegistrykey的作用
在利用MFC框架的时候,在应用程序应用类的的InitInstance()函数中,初始化时总有一个以下是我在网上找到的一些资料:过SetRegistrykey导致应用程序设置,而不是存储在注册表中。INI文件。名SetRegistryKey这个函数功能是设置MFC程序的注册表访问键,并把读写INI文件的成员函数映射到读写注册表。只要调用转载 2013-07-26 15:00:40 · 2907 阅读 · 0 评论 -
初识dll,在VS2010平台上创建并使用dll(revised)
一、为什么需要dll代码复用是提高软件开发效率的重要途径。一般而言,只要某部分代码具有通用性,就可将它构造成相对独立的功能模块并在之后的项目中重复使用。比较常见的例子是各种应用程序框架,如ATL、MFC等,它们都以源代码的形式发布。由于这种复用是“源码级别”的,源代码完全暴露给了程序员,因而称之为“白盒复用”。“白盒复用”的缺点比较多,总结起来有4点。暴露了源代码;容易与程序员的“转载 2013-08-02 14:29:36 · 754 阅读 · 0 评论 -
c++ 字符类型总结区别wchar_t,char,WCHAR(转)
1.区别wchar_t,char,WCHAR ANSI:即 char,可用字符串处理函数:strcat( ),strcpy( ), strlen( )等以str打头的函数。 UNICODE:wchar_t是Unicode字符的数据类型,它实际定义在里: typedef unsigned short wchar_t; 另外,在头文件中有这样的定义:typedef转载 2013-08-02 15:12:41 · 1396 阅读 · 0 评论 -
AFX_msg
AFX_msg在头文件(DrawView.h)中声明消息响应函数原型.消息映射机制是Windows编程的核心内容。Windows下的应用程序也都是通过消息驱动的机制来进行工作的。虽然VC开发环境自带了大量的系统消息处理函数,但我们实际的程序开发过程中总还是避免不了要写一些自定义的消息处理函数以满足所编写的软件功能的需要。那么在VC中如何定义自己的消息处理转载 2013-07-29 08:51:19 · 731 阅读 · 0 评论 -
ReleaseDC和DeleteDC的区别
今天做一个小软件时需要在界面上重复绘制图形于是写了个函数绘制图形然后在OnPaint()里调用发现低频率的重绘窗口还好 一旦经常重绘窗口就会出现错误应该是内存泄露的错误但是我发现我所有的CDC全都DeleteDC了 怎么会出现这错误了 于是查了下MSDN在ReleaseDC里写着API原文intReleaseDC(CDC*pD转载 2013-07-29 09:31:53 · 5612 阅读 · 0 评论 -
MFC ASSERT 详解
在开发过程中我们可以假设只要程序运行正确,某一条件肯定成立。若不成立,那么我们可以断言程序肯定出错。在这种情况下我们可要利用ASSERT来设定断言。ASSERT宏的参数是一个逻辑表达式,在程序运行过程中,若该逻辑表达式为真,则不会发生任何动作;若此表达式为假,则系统弹出一个对话框警告你,并停止程序的执行。同时要求你作出选择:取消、忽略和重试。若你选择取消,则系统将停止程序的运行;若你选择忽略,则系转载 2013-07-29 14:09:54 · 670 阅读 · 0 评论 -
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 · 2697 阅读 · 0 评论 -
wMsg函数
WM_CREATE 创建一个窗口WM_DESTROY 当一个窗口被破坏时发送WM_MOVE 移动一个窗口WM_SIZE 改变一个窗口的大小WM_ACTIVATE 一个窗口被激活或失去激活状态WM_SETFOCUS 一个窗口获得焦点WM_KILLFOCUS 一个窗口失去焦点WM_ENABLE 一个窗口改变成Enable状态WM_SETREDRAW 设置窗口是否能重画转载 2013-08-05 13:59:25 · 948 阅读 · 0 评论 -
说说C++中的INL文件
.INL 文件是内联函数的源文件。 内联函数通常在c++头文件中实现,但有的时候内联函数较多或者出于一些别的考虑,如为了使头文件看起来更简洁等,往往会将这部分具体定义的代码添加到INL文件中,然后在该头文件的末尾将其用#include 引入。 由此也可以看到inl文件的另外一个用法的影子——模板函数、模板类的定义代码的存放。对于比较大的工程来说,出于管理方面的考转载 2013-08-05 17:20:54 · 1781 阅读 · 0 评论 -
chromium 书签实现机制
一、概述 之前有介绍过chromium的界面层的相关知识,这篇文章则是重点介绍chromium中书签这一个模块,不仅有界面层的知识,还会较多的介绍逻辑层的一些内容。接下来会详细介绍chromium中书签功能的详细实现。主要问题有: 1、书签数据在硬盘和内存中存储结构; 2、初始化过程; 3、相转载 2013-08-27 16:34:01 · 3511 阅读 · 0 评论 -
Debug和Release区别
VC下Debug和Release区别最近写代码过程中,发现 Debug 下运行正常,Release 下就会出现问题,百思不得其解,而Release 下又无法进行调试,于是只能采用printf方式逐步定位到问题所在处,才发现原来是给定的一个数组未初始化,导致后面处理异常。网上查找了些资料,在这 罗列汇总下,做为备忘~ 一、Debug 和 Release 的区别 Deb转载 2013-08-27 16:46:55 · 734 阅读 · 0 评论 -
chromium UI库简介
概述 之前研究了一段时间chromium源码,根据自己的兴趣了解了一下其中部分功能的实现。通过在在网上查看博文、chromium官方文档以及加上自己的一些理解,整理出了一点资料。本文中主要是介绍chromium UI中的一些内容。接下来我会一一介绍 chromium 中窗口的创建过程、布局方式。基础铺垫 1、Widget Widg转载 2013-08-27 16:22:36 · 7715 阅读 · 0 评论 -
chromium源码剖析之chrome进程通信的基本模式
1. Chrome进程通信的基本模式进程间通信,叫做IPC(Inter-Process Communication),在Chrome不多的文档中,有一篇就是介绍这个的,在这里。Chrome最主要有三类进程,一类是Browser主进程,我们一直尊称它老人家为老大;还有一类是各个Render进程,前面也提过了;另外还有一类一直没说过,是Plugin进程,每一个插件,在Chrome中都是以进程的转载 2013-09-06 17:03:23 · 2362 阅读 · 0 评论 -
chromium源码分析之进程通讯片段
进程间通信http://www.chromium.org.sixxs.org/developers/design-documents/inter-process-communication目录1。 概述 1.1 在浏览器中的IPC 1.2 在渲染器中的IPC2。 消息 2.1 消息的类型 2.2 声明消转载 2013-09-06 16:52:05 · 3343 阅读 · 0 评论 -
在MFC中怎么样让控件的大小随着主窗体大小改变而改变
MFC控件随着窗口大小变化VC++刚接触MFC不久,对MFC的许多函数和功能还不是很了解。所以,在仿照书本开发一个仿QQ的通讯程序的时候,就碰到了一个怎么样使控件随着窗体变化的问题。好了,废话不多说,直接上主窗体图:现在,要实现的功能如下:使控件CLISTBOX类对象窗口(IDC_QQLISTBOX)以及两个CBUTTON类对象(IDC_MAIL)、(IDC_WEB)随着主窗体转载 2013-09-12 17:14:37 · 16300 阅读 · 4 评论 -
HINSTANCE HANDLE HWND 的区别及一般方法
转载于:http://www.cnblogs.com/rainboy/archive/2012/03/05/2380738.html HINSTANCE是应用程序实例句柄,HWND是窗口对象句柄,HANDLE是任意对象的句柄,CWnd是MFC中的窗口类。MSDN里面对于HINSTANCE的解释是"handle to an instance" 就是说是转载 2013-09-13 16:43:21 · 1542 阅读 · 0 评论 -
c++中string类的详解
过在网站上的资料搜集,得到了很多关于string类用法的文档,通过对这些资料的整理和加入一些自己的代码,就得出了一份比较完整的关于string类函数有哪些和怎样用的文档了!下面先罗列出string类的函数有哪一些,然后再罗列出函数的原型,最后到代码的实现标准C++中提供的string类得功能也是非常强大的,一般都能满足我们开发项目时使用。现将具体用法的一部分罗列如下,只起一个抛砖引转载 2013-11-05 15:57:39 · 787 阅读 · 0 评论 -
C++对象计数
本文目的是实现一个实用的对C++类计数的类,同时在实现过程中指出一些容易为人忽视的C++知识。 要实现一个类的对象(实例)计数,即程序运行中此类有多少个对象存在,最容易的实现方法是使用静态数据成员。如下: 01.classWidget { 02.public:03.Widget() { ++count; }04.Widget(const转载 2013-11-06 09:28:12 · 1004 阅读 · 0 评论 -
.dll,.lib,.def 和 .exp文件
简要的介绍一下在微软开发工具中(VC)静态链接库和动态链接库生成过程中出现的.dll .lib .def 和 .exp文件类型。windows平台上可执行文件可能是一个.exe文件也可能四个.dll文件。当然也有一些比较特别的exe或者dll文件,不过他们有其他样式的后缀名比如屏保程序(.scr),ActiveX DLL 用的.ocx 还有各种驱动使用的各种扩展名。这里我们不讨论.com 和一转载 2013-11-20 14:37:40 · 997 阅读 · 0 评论 -
C++——CString用法大全
c++insertdeletewindows测试nullVC:CString用法大全列表形式的如下:CString的构造函数CString( );例:CString csStr;CString( const CString& stringSrc );例:CString csStr("ABCDEF中文123456");CString转载 2013-11-07 13:07:20 · 14723 阅读 · 1 评论