自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(50)
  • 资源 (8)
  • 收藏
  • 关注

转载 linux系统下安装zookeeper集群

1.概述操作系统为3台ubuntu虚拟机,其ip地址分别为ubuntu1  192.168.1.109ubuntu2  192.168.1.108ubuntu3  192.168.1.110jdk版本为jdk72.下载解压(三台机器都执行一遍)    2.1将zookeeper解压到/usr/local/zookeeper-3.4.5目录下

2014-06-04 13:20:14 731

转载 WinForm中Component Class、User Control及Custom Control的区别和使用

NET Framework 为您提供了开发和实现新控件的能力。除了常见的用户控件外,现在您会发现,您可以编写能执行自身绘图的自定义控件,甚至还可以通过继承扩展现有控件的功 能。确定创建何种类型的控件可能会费一番功夫。本节重点介绍了各类可继承控件间的区别,同时提供关系到为项目选择的类型的注意事项。1、 Component ClassComponent Class可以从任何现有的 Wi

2014-04-02 14:12:22 983

转载 封装的好处

以前总是体会不到封装的好处。看书或者向他人咨询时,得到的答案都是:封装后可以修改类的内部实现,而无需修改使用了该类的客户代码;封装后可以对成员进行更精确的控制,例如将某个成员设置为只读的。但是这些都是理论,没有切身感悟。最近在修改代码时遇到了一个相关问题,对封装的好处有了初步的体会。假设现在有这样一个类:[cpp] view plaincopy

2014-03-11 17:37:34 1904

转载 windows线程同步方法

分两大类:内核对象方式和用户方式。内核对象方式:WINDOWS内核提供的可以用来进行线程同步的内核对象,都是可以发信号(Signaled)的对象,在WINDOWS中它们被称为“调度程序对象”(dispatcher object)。它们包括进程(PROCESS)、线程(THREAD)、事件(EVENT)、信号量(SEMAPHORE)、互斥(MUTEX)、时钟(TIMER)等。对这一类的对象,

2013-12-08 21:30:16 683

转载 DestroyWindow

考虑单窗口情况:假设自己通过new创建了一个窗口对象pWnd,然后pWnd->Create。则销毁窗口的调用次序: 1.       手工调用pWnd->DestroyWindow();2.       DestroyWindow会发送WM_DESTROY;3.       WM_DESTROY对应的消息处理函数是OnDestroy();4.       Destroy

2013-10-09 09:16:20 1313

转载 char, wchar_t, TCHAR 字符全总结 & c++字符串操作经验集

字符类型、字符指针类型、字符串字面值字符类型:    char, wchar_t, CHAR, WCHAR, TCHAR, UCHAR, BYTE, TBYTE    char          是C语言标准数据类型,字符型。通常由编译器决定一个char对象有多少个字节组成,一般是一字节。    wchar_t    是char的Unicode版本。相当于 unsi

2013-10-07 21:02:33 1019

转载 Windows API

PathRemoveFileSpec 函数的作用是文件路径末尾的文件名和反斜杠去掉。PathFindFileName的作用是返回路径中的文件名

2013-01-14 09:39:06 488

转载 #import说明

C++特殊处#import指令用于从一个类型库中结合信息。该类型库的内容被转换为C++类,主要用于描述COM界面。语法#import "文件名" [属性]#import [属性]属性:属性1,属性2,...属性1 属性2 ...文件名是一个包含类型库信息的文件的名称。一个文件可为如下类型之一:* 一个类型库(.TLB或.ODL)文件。* 一个可执行(.EX

2012-09-03 14:36:56 596

转载 VC窗口类的相关问题

一 窗口注册和创建  1 Win32窗口程序创建步骤      1.1 WinMain入口函数的定义    1.2 WindowProc函数的定义    1.3 注册窗口类      RegisterClass/RegisterClassEx    1.4 创建窗口      CreateWindow/CreateWindowEx    1.5 窗口的显示和刷新

2012-08-29 09:10:49 1499

转载 COM 技术简介

一、为什么要用COM   软件工程发展到今天,从一开始的结构化编程,到面向对象编程,再到现在的COM编程,目标只有一个,就是希望软件能象积方块一样是累起来的,是组装起来的,而不是一点点编出来的。结构化编程是函数块的形式,通过把一个软件划分成许多模块,每个模块完成各自不同的功能,尽量做到高内聚低藕合,这已经是一个很好的开始,我们可以把不同的模块分给不同的人去做,然后合到一块,这已经有了组

2012-07-30 14:35:43 611

转载 面试中的Singleton

转自http://www.cnblogs.com/loveis715/archive/2012/07/18/2598409.html 引子  “请写一个Singleton。”面试官微笑着和我说。  “这可真简单。”我心里想着,并在白板上写下了下面的Singleton实现: 1 class Singleton 2 { 3 public: 4 static

2012-07-19 15:41:23 673

转载 SDK中创建控件和控件消息

控件是子窗口,它们是系统已经定义好的窗口类,因此不需要注册、也不需要写消息处理函数。在主窗口得到WM_CREATE消息时,建立子窗口即可。 二、实例//参数:窗口句柄,消息,消息参数,消息参数LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam){ //处理感兴趣的消

2012-07-09 11:35:41 449

转载 Windows消息机制(Windows Messaging)

Windows的应用程序一般包含窗口(Window),它主要为用户提供一种可视化的交互方式,窗口是由线程(Thread)创建的。Windows系统通过消息机制来管理交互,消息(Message)被发送,保存,处理,一个线程会维护自己的一套消息队列(Message Queue),以保持线程间的独占性。队列的特点无非是先进先出,这种机制可以实现一种异步的需求响应过程。消息的是什么样子的?

2012-06-26 08:45:00 701

转载 C++ INI文件

INI文件多用于存储程序的初始化信息。例如,记录程序连接数据库的名称、上一次用户登录的名称、用户的注册信息等。一. INI 文件格式[Section1 Name]KeyName1=value1KeyName2=value2...... ......[Section2 Name]KeyName1=value1KeyName2=value2

2012-06-01 12:59:05 593

转载 Win32消息

一、消息概念消息就是在事件驱动模式下,事件发布函数和具体功能执行函数(或者代码段)之间的调用协议,调用协议的执行表现为窗口事件发布函数跟具体功能执行函数(或者代码段)之间的选择关系。在Windows系统下(下面所述均为Windows系统),对计算机外设的操作,例如当用户敲击键盘键、点击鼠标、热插拔USB盘等,系统都认为外设发生了事件,于是系统调用专职函数就把这些事件进行收集,形成现场信息,

2012-05-29 15:21:31 567

转载 关于线程的句柄资源

一例子1     if(sClient!=INVALID_SOCKET)   {    hThread = CreateThread(NULL,0,ClientThread,(LPVOID)pClientInfo,0,&dwThread);    //free(pClientInfo);    if(hThread==NULL)    {     AfxMessageB

2012-05-28 08:36:47 1168

转载 线程的实现细节

关于线程的实现细节,我们这里只讨论两个问题。即线程的内核对象和线程栈以及线程的创建过程。上一章我们提到,线程是由线程内核对象以及线程栈两个部分组成的。系统通过线程的内核对象管理线程。线程栈则维护参数和局部变量。1. 线程的内核对象和线程栈         下表很清楚的表明了内核对象和线程栈的内容以及直接的管理。调用了CreateThread之后,系统会创建线程的内核对象

2012-05-28 07:56:11 453

转载 面向接口编程详解(二)——编程实例

2008-04-11 15:49 by T2噬菌体, 15546 visits, 收藏, 编辑通过上一篇文章的讨论,我想各位朋友对“面接接口编程”有了一个大致的了解。那么在这一篇里,我们用一个例子,让各位对这个重要的编程思想有个直观的印象。为充分考虑到初学者,所以这个例子非常简单,望各位高手见谅。问题的提出 定义:现在我们要开发一个应用,模拟移动存储设备的读写,

2012-05-18 15:28:58 435

转载 为什么要使用接口编程

看了接口编程这篇文章,理解蛮透彻的.记录下:进行接口的介绍,必须介绍一下程序语言发展的历史才行,鲁迅先生说过“治学先治史”,明白了程序语言发展的前世今生,才能知道为什么这么多语言为什么会这样,为什么么会那样?计算机出现以后,科学家相继开发了多种语言,从smalltalk,Pascal,Basic,C语言,C++,java,.net等等,这些语言的发展步伐,可以看作是从面向过程向面向对象

2012-05-18 13:21:18 1100

转载 进程地址空间与虚拟存储空间的理解

点击打开链接在进入正题前先来谈谈操作系统内存管理机制的发展历程,了解这些有利于我们更好的理解目前操作系统的内存管理机制。一 早期的内存分配机制在 早期的计算机中,要运行一个程序,会把这些程序全都装入内存,程序都是直接运行在内存上的,也就是说程序中访问的内存地址都是实际的物理内存地址。当计算 机同时运行多个程序时,必须保证这些程序用到的内存总量要小于计算机实际物理内存的大小。那当程序

2012-04-23 14:46:50 372

转载 为什么C++编译器不支持模板头文件和实现代码分离的编译

首先,C++标准中提到,一个编译单元[translation unit]是指一个.cpp文件以及它所include的所有.h文件,.h文件里的代码将会被扩展到包含它的.cpp文件里,然后编译器编译该.cpp文件为一个.obj文件,后者拥有PE[Portable Executable,即Windows可执行文件]文件格式,并且本身包含的就已经是二进制码,但是,不一定能够执行,因为并不保证其中一定有m

2012-04-16 18:44:30 309

转载 在DLL中使用资源

现在最常看见的关于DLL的问题就是如何在DLL中使用对话框,这是一个很普遍的关于如何在DLL中使用资源的问题。这里我们从Win32 DLL和MFC DLL两个方面来分析并解决这个问题。1.Win32 DLL     在Win32 DLL中使用对话框很简单,你只需要在你的DLL中添加对话框资源,而且可以在对话框上面设置你所需要的控件。然后使用DialogBox或者CreateDialog

2012-01-18 11:32:37 411

转载 关于VS的延迟加载dll的使用和理解

延迟加载dll:当一个应用程序过多加载dll的时候,如果都是在启动时加载,那么无疑会减慢程序启动速度,而且会让初始的程序就占用很大内存空间,但并不是所有的dll都是经常使用的,有些可能仅在特殊情况下才会使用到,比如你需要打印功能时,额外的一个dll用于负责此事,但这项功能可能很少人使用,如果程序一启动就加载会有些浪费,谓词微软提供了延迟载入dll的功能,就是当你执行到某个函数的时候

2011-12-28 10:15:52 4465

转载 延迟加载DLL

MicrosoftVisualC++6.0提供了一个出色的新特性,它能够使DLL的操作变得更加容易。这个特性称为延迟加载DLL。延迟加载的DLL是个隐含链接的DLL,它实际上要等到你的代码试图引用DLL中包含的一个符号时才进行加载。延迟加载的DLL在下列情况下是非常有用的:>>如果你的应用程序使用若干个DLL,那么它的初始化时间就比较长,因为加载程序要将所有需要的DLL映射到进程的地址空间中。解决

2011-12-28 10:13:30 2805

转载 c++面向对象编程必备“良方”(欢迎大家来补充!)

前言:c++面向对象中的繁琐机制,不得不让你在编程中频频“犯病”,找错误,找bug,困扰,是你的病源所在,本人虽不是什么“良医”, 却也算是总结出以下“良方”。注:难免会有记忆上的遗漏,知识上的不够,遗漏之处还需大家来补充啊!http://blog.csdn.net/zhanxi

2011-09-22 18:20:48 385

转载 让你的C程序更有效率的10种方法

任何代码的美丽不仅在于找到一个给定的问题的解决方案,但在它的简单性,有效性,紧凑性和效率(内存)。设计的代码比实际执行更难 。因此,每一个程序员当用C语言开发时,都应该保持这些基本的东西在头脑中。本文向你介绍规范你的C代码的10种方法。1.避免不必要的函数调用考虑下面

2011-08-05 14:53:28 393

转载 一个microsoft的.exe程序的启动过程

学习windows 编程从mfc角度来说可分为两部分那就是WinMain函数以前的,和WinMain函数以后的。前者涉及很多windows操作系统内部的知识,后者需要看mfc源码。虽然大多数程序不需要了解太多关于os加载应用程序这方面的知识,但能较深入了解windows os

2011-08-02 13:09:18 546

转载 Dijkstra算法为什么权值不能是负值

Dijkstra算法当中将节点分为已求得最短路径的集合(记为S)和未确定最短路径的个集合(记为U),归入S集合的节点的最短路径及其长度不再变更,如果边上的权值允许为负值,那么有可能出现当与S内某点(记为a)以负边相连的点(记为b)确定其最短路径时,它的最短路径长度加上这条负边的权

2011-07-28 11:19:37 6790 1

转载 暗时间

如果你有一台计算机,你装了一个系统之后就整天把它搁置在那里,你觉得这台计算机被实际使用了吗?没有。因为CPU整天运行的就是空闲进程。运行空闲进程也是一天,运行大数据量计算的程序也是一天,对于CPU来说同样的一天,价值却是完全不一样的。大脑也是如此。善于利用思维时间的人,可以无形中比别人多出很多时间,从而实际意义上能比别人多活很多年。我们经常听说“心理年龄”这个词,思考得多的人,往往

2011-06-15 08:29:00 472

原创 应用程序二进制接口(ABI)

<br />每个操作系统都会为运行在该系统下的应用程序提供应用程序二进制接口(ABI)。ABI包含了应用程序在这个系统下运行时必须遵守的变成约定。ABI总是包含一系列的系统调用和使用这些系统调用的方法,以及关于程序可以使用的内存地址和使用机器寄存器的规定。<br /> <br /><br />应用二进制接口,描述了应用程序和操作系统之间,一个应用和它的库之间,或者应用的组成部分之间的低层接口。ABI不同于应用程序接口(API),API定义了源代码和库之间的接口,因此同样的代码可以在支持这个API的任何系统中

2011-05-24 10:24:00 1660

转载 递归树

<br /><br />递归树<br />   递归树的结点有两个域,如下图: <br /><br />    T(size)指问题大小为size时,函数的复杂度。nonrec.cost指问题大小为size时的非递归代价。<br />    根结点的每个子结点都代表了这个问题分拆的一个子问题的复杂度。就这样递归地分解问题。一直到达叶子结点,也就是base-case.在前面的讨论中,我们没有涉及base-case,在使用递归树分析复杂度时,我们假设base-case的复杂度为1。<br />    

2011-05-23 08:30:00 7584 1

原创 CFont & LOGFONT

<br />LOGFONT: 一个结构,用来逻辑上表达一个字体,比如LOGFONT.lfFaceName是字体的名字 <br />HFONT: 一个句柄,相当于表示内存中的一个字体对象,它可以马上拿来用 <br />CFont: 是mfc对于HFONT的一种封装 <br /> <br />     可以说LOGFONT是一种墨水的名字,比如英雄牌,比较抽象; 而HFONT表示实实在在的一瓶墨水,打开瓶盖就可以用 ;CFont只是把一瓶墨水外面包了一层纸,其实它还是一瓶墨水.<br />     当你需要简单

2010-11-23 09:25:00 1277

原创 计数排序

计数排序假设n个输入中的每一个都是介于0到k之间的整数,此处k为某个整数。当k=o(n)时,计数排序的运行时间为线性的。 计数排序的基本思想就是对每一个输入元素x,确定小于x的元素个数,有了这一信息,就可以直接把x放到输出数组中的位置上。 在计数排序算法的代码中,我们假定输入是个数组A[1..n],length[A]=n。另外还需要两个数组:存放排序结果的B[1..n],以及提供临时存储的C[0..k]。

2010-11-23 08:00:00 404

原创 框架窗口的创建

构造CFrameWnd窗口三种途径:1、使用Create函数直接构造2、使用LoadFrame函数直接构造3、通过文档模板直接构造在使用Create或LoadFrame之前,必须使用C++ New操作符在堆中构造框架窗口对象。在调用Create函数之前,必须使用AfxRegisterWndClass全局函数来登记窗口类,从而为框架设置图标或类的风格。使用Create成员函数,应指定所有框架窗口的构造参数。LoadFrame需要的参数比Create少,不过它需要的资源更多的缺省值,包括框架的标题、图标、加速表

2010-11-19 15:01:00 612

原创 快速排序

<br />#include <iostream>using namespace std;void swap(int &a, int &b){ int c = a; a = b; b = c;}int Partition(int *A,int p,int r){ int x = A[r]; int i = p-1; for(int j = p; j<=r-1; ++j) { if(A[j] <=x

2010-11-18 08:21:00 396

原创 堆排序

<br />#include <iostream>using namespace std;int heap_size;int length;//左孩子int Left(int i){ return 2*i+1;}//右孩子int Right(int i){ if(2*(i+1) <= length -1) { return 2*(i+1); } else { return

2010-11-17 17:09:00 353

原创 CDocument / CView / CFrameWnd

<br />向导完成的创建DOC/VIEW过程主要做了以下几件事情,<br />    1.new了DOC,FRAME,VIEW三个对象 <br />    2.创建了FRAME,VIEW两个窗口 <br />    3.将FRAME对象地址保存到APP对象中,将DOC对象地址保存到VIEW对象中,将VIEW对象地址插入到DOC对象里面的一个表中,将VIEW对象地址保存到FRAME对象里面. <br />    向导产生对象使用RUNTIME_CLASS来动态创建的,其实就是new了一把. <br

2010-11-16 13:45:00 914

转载 GetModuleHandle函数

<br /><br />VC声明:<br />       HMODULE GetModuleHandle (LPCTSTR lpModuleName); <br />功能说明 <br />  获取一个应用程序或动态链接库的模块句柄 <br />参数说明 <br />  lpModuleName 模块名称 <br />返回值 <br />  如执行成功成功,则返回模块句柄。零表示失败。通过GetLastError获得错误信息 <br />  如: <br />       GetModuleHandle(N

2010-11-16 09:05:00 2068

原创 多项式大于小于

<br />在算法分析导论中,看到了多项式大于和多项式小于这个概念,简单的查了一下:<br /> <br />f(x)多项式大于g(x):<br />存在实数e>0,使得f(x)>g(x)*n^e<br /> <br />f(x)多项式小于g(x):<br />存在实数e>0,使得f(x)<g(x)*n^e

2010-11-15 08:53:00 5903 1

原创 图的邻接表

<br />#include <iostream>#define MAX_VERTEX_NUM 1024using namespace std;typedef struct ArcNode{ int adjvex; ArcNode *nextarc;}ArcNode;typedef struct VNode{ char data; ArcNode *firstarc;}VNode, AdjList[MAX_VERTEX_NUM];t

2010-11-14 14:13:00 531

C++模板中文版

C++模板中文版

2012-12-13

算法导论课后英文版答案

算法导论的答案,但是是英文版的;而且并不是每道习题都有答案。

2011-06-30

UML设计核心技术 类图 用例图 对象图

对UML设计做了最基础的介绍,适合初学者学习UML 包括用例图 类图、动态建模的介绍

2011-03-17

MFC类库详解.chm

对MFC中的类有详细的解释,可以作为开发过程中的工具

2010-10-19

深度探索C++对象模型(简体中文版).pdf 和英文版

深入探索c++对象模型,C++程序员必读之书

2010-10-19

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除