自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Barry的博客

勿在浮沙筑高台

  • 博客(23)
  • 资源 (3)
  • 收藏
  • 关注

原创 windows系统信息,内存状态,区域信息的查询

//系统信息 SYSTEM_INFO sysInfo; GetSystemInfo(&sysInfo); cout<<"机器属性:"<<endl; cout<<"页大小="<<sysInfo.dwPageSize<<endl; cout<<"分配粒度="<<sysInfo.dwAllocationGranularity<<endl; cout<<"用户区最小值="<<sysInfo.

2015-12-29 16:11:34 1263

原创 windows内存管理

Windows的内存管理一 地址空间  1 地址空间    一个程序最大的寻址范围,是一块虚拟的存储空间。对于Win32操作系统最大的寻址范围是2的32次方,0-0xFFFFFFFF(4G)。这个寻址范围由CPU决定。CPU的寻址范围越大, 编写程序难度越低。    2 地址空间的划分    通常情况下:一个程序的地址空间分为用户空间和内核空间

2015-12-27 18:33:16 763

转载 设计模式C++实现--状态模式

状态模式:允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类。它有两种使用情况:(1)一个对象的行为取决于它的状态, 并且它必须在运行时刻根据状态改变它的行为。(2)一个操作中含有庞大的多分支的条件语句,且这些分支依赖于该对象的状态。本文的例子为第一种情况,以战争为例,假设一场战争需经历四个阶段:前期、中期、后期、结束。当战争处于不同的阶段,战争的行为是不一样的,也就说战争的行

2015-12-23 15:09:03 421

转载 设计模式C++实现--观察者模式

观察者模式:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。它还有两个别名,依赖(Dependents),发布-订阅(Publish-Subsrcibe)。可以举个博客订阅的例子,当博主发表新文章的时候,即博主状态发生了改变,那些订阅的读者就会收到通知,然后进行相应的动作,比如去看文章,或者收藏起来。博主与读者之间存在种一对多的依赖关系。下面

2015-12-23 15:08:19 408

转载 设计模式C++实现--职责链模式

职责链模式:使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。其思想很简单,考虑员工要求加薪。公司的管理者一共有三级,总经理、总监、经理,如果一个员工要求加薪,应该向主管的经理申请,如果加薪的数量在经理的职权内,那么经理可以直接批准,否则将申请上交给总监。总监的处理方式也一样,总经理可以处理所有请求。这就

2015-12-23 15:07:15 465

转载 设计模式C++实现--中介者模式

中介者模式:用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。中介者模式的例子很多,大到联合国安理会,小到房屋中介,都扮演了中间者的角色,协调各方利益。       本文就以租房为例子,如果没有房屋中介,那么房客要自己找房东,而房东也要自己找房客,非常不方便。有了房屋中介机构就方便了,房东可以把要出租的房屋信息放到

2015-12-23 15:06:19 403

转载 设计模式C++实现--备忘录模式

备忘录模式:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态[DP]。举个简单的例子,我们玩游戏时都会保存进度,所保存的进度以文件的形式存在。这样下次就可以继续玩,而不用从头开始。这里的进度其实就是游戏的内部状态,而这里的文件相当于是在游戏之外保存状态。这样,下次就可以从文件中读入保存的进度,从而恢复到原来的状态。这就是备忘录模式

2015-12-23 15:05:39 362

转载 设计模式C++实现--装饰模式

装饰模式:动态地给一个对象添加一些额外的职责。就增加功能来说,装饰模式相比生成子类更为灵活。有时我们希望给某个对象而不是整个类添加一些功能。比如有一个手机,允许你为手机添加特性,比如增加挂件、屏幕贴膜等。一种灵活的设计方式是,将手机嵌入到另一对象中,由这个对象完成特性的添加,我们称这个嵌入的对象为装饰。这个装饰与它所装饰的组件接口一致,因此它对使用该组件的客户透明。下面给出装饰模式的UML图。

2015-12-23 15:04:20 305

转载 设计模式C++实现--桥接模式

[DP]书上定义:将抽象部分与它的实现部分分离,使它们都可以独立地变化。考虑装操作系统,有多种配置的计算机,同样也有多款操作系统。如何运用桥接模式呢?可以将操作系统和计算机分别抽象出来,让它们各自发展,减少它们的耦合度。当然了,两者之间有标准的接口。这样设计,不论是对于计算机,还是操作系统都是非常有利的。下面给出这种设计的UML图,其实就是桥接模式的UML图。         给出

2015-12-23 15:02:18 337

转载 设计模式C++实现--享元模式

举个围棋的例子,围棋的棋盘共有361格,即可放361个棋子。现在要实现一个围棋程序,该怎么办呢?首先要考虑的是棋子棋盘的实现,可以定义一个棋子的类,成员变量包括棋子的颜色、形状、位置等信息,另外再定义一个棋盘的类,成员变量中有个容器,用于存放棋子的对象。下面给出代码表示:        棋子的定义,当然棋子的属性除了颜色和位置,还有其他的,这里略去。这两个属性足以说明问题。

2015-12-23 15:01:30 362

转载 设计模式C++实现--代理模式

[DP]上的定义:为其他对象提供一种代理以控制对这个对象的访问。有四种常用的情况:(1)远程代理,(2)虚代理,(3)保护代理,(4)智能引用。本文主要介绍虚代理和智能引用两种情况。       考虑一个可以在文档中嵌入图形对象的文档编辑器。有些图形对象的创建开销很大。但是打开文档必须很迅速,因此我们在打开文档时应避免一次性创建所有开销很大的对象。这里就可以运用代理模式,在打开文档时,并不

2015-12-23 15:00:04 335

转载 设计模式C++实现--外观模式、组合模式

外观模式应该是用的很多的一种模式,特别是当一个系统很复杂时,系统提供给客户的是一个简单的对外接口,而把里面复杂的结构都封装了起来。客户只需使用这些简单接口就能使用这个系统,而不需要关注内部复杂的结构。DP一书的定义:为子系统中的一组接口提供一个一致的界面, 外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。举个编译器的例子,假设编译一个程序需要经过四个步骤:词法分析、语法分析、中间代

2015-12-23 14:59:01 343

转载 设计模式C++实现--建造者模式

建造者模式的定义将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示(DP)。《大话设计模式》举了一个很好的例子——建造小人,一共需建造6个部分,头部、身体、左右手、左右脚。与工厂模式不同,建造者模式是在导向者的控制下一步一步构造产品的。建造小人就是在控制下一步步构造出来的。创建者模式可以能更精细的控制构建过程,从而能更精细的控制所得产品的内部结构。下面给出建造者模式的UML图

2015-12-23 14:57:15 360

转载 设计模式C++实现--原型模式、模板方法模式

DP书上的定义为:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。其中有一个词很重要,那就是拷贝。可以说,拷贝是原型模式的精髓所在。举个现实中的例子来介绍原型模式。找工作的时候,我们需要准备简历。假设没有打印设备,因此需手写简历,这些简历的内容都是一样的。这样有个缺陷,如果要修改简历中的某项,那么所有已写好的简历都要修改,工作量很大。随着科技的进步,出现了打印设备。我们只需手写一份

2015-12-23 14:55:54 356

转载 设计模式C++实现--单例模式

单例的一般实现比较简单,下面是代码和UML图。由于构造函数是私有的,因此无法通过构造函数实例化,唯一的方法就是通过调用静态函数GetInstance。      UML图:      代码:[cpp] view plaincopyprint?//Singleton.h  class Singleton    {

2015-12-23 14:52:23 456

转载 设计模式C++实现--适配器模式

DP上的定义:适配器模式将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。它包括类适配器和对象适配器,本文针对的是对象适配器。举个例子,在STL中就用到了适配器模式。STL实现了一种数据结构,称为双端队列(deque),支持前后两段的插入与删除。STL实现栈和队列时,没有从头开始定义它们,而是直接使用双端队列实现的。这里双端队列就扮演了适配器的角

2015-12-23 14:48:30 320

转载 设计模式C++实现--策略模式

策略模式是指定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。本模式使得算法可独立于使用它的客户而变化。也就是说这些算法所完成的功能一样,对外的接口一样,只是各自实现上存在差异。用策略模式来封装算法,效果比较好。下面以高速缓存(Cache)的替换算法为例,实现策略模式。       什么是Cache的替换算法呢?简单解释一下, 当发生Cache缺失时,Cache控制器必须选择C

2015-12-23 14:43:17 322

转载 设计模式C++实现--工厂模式

[转载出处](http://blog.csdn.net/wuzhekai1985) 软件领域中的设计模式为开发人员提供了一种使用专家设计经验的有效途径。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态,真正领悟设计模式的精髓是可能一个漫长的过程,需要大量实践经验的积累。最近看设计模式的书,对于每个模式,用C++写了个小例子,加深一下理解。主要参考《大话设计模式》和《设计模式:可复用面向

2015-12-23 11:17:06 540

转载 CASyncSocket类和CSocket类编程

CASyncSocket类和CSocket类编程     本文主要讲解以下内容   (1)CAsyncSocket类编程模式。   (2)CSocket类编程模式。   (3)CSocketFile类和CArchive类简介。   通过学习,可以掌握CAsyncSocket类和CSocket类的编程模式,了解CSocketFile类和 CArchive类。CAsyncSocke

2015-12-23 10:07:19 1599

转载 CSocket详解

CSocket的用法 CSocket在CAsyncSocket的基础上,修改了Send、Recieve等成员函数, 帮你内置了一个用以轮询收发缓冲区的循环,变成了同步短连接模式。 短连接应用简单明了,CSocket经常不用派生就可以直接使用,但也 有些问题: 1、用作监听的时候 曾经看到有人自己创建线程,在线程中创建CSocket对象进行Listen、 Accept,若Accept成功

2015-12-23 10:06:13 9563

转载 windows下五种I/O模型的比较

windows下五种I/O模型的比较

2015-12-22 21:53:35 2260

转载 完成端口模型IOCP

完成端口模型“完成端口”模型是迄今为止最为复杂的一种 I / O模型。然而,假若一个应用程序同时需要管理为数众多的套接字,那么采用这种模型,往往可以达到最佳的系统性能!但不幸的是,该模型只适用于Windows NT和Windows 2000操作系统。因其设计的复杂性,只有在你的应用程序需要同时管理数百乃至上千个套接字的时候,而且希望随着系统内安装的 C P U数量的增多,应用程

2015-12-21 14:32:19 1289

转载 基于事件的重叠IO模型

Windows socket重叠IO模型开发。      利用套接字重叠IO模型,应用程序能一次投递一个或多个IO请求,当系统完成IO操作后通知应用程序。该模型以win32异步IO机制为基础。与前面介绍的所有IO模型相比较,该模型是真正意义上的异步IO模型,它能使Windows socket应用程序达到更高的性能。     关于异步IO机制可以参考:《Windows

2015-12-19 21:35:33 3000

python3 报错cannot import name '_AES'

1.from Crypto.Cipher import AES 报错:cannot import name '_AES' 2.下载附件的,把附件的文件替换到python安装目录下的对应位置

2018-10-04

libcurl7.52.1动态库

自己编译的libcurl动态库,支持https,gzip,里面包括开发需要的include,lib,dll 说明博客:http://blog.csdn.net/rankun1/article/details/73196058

2017-06-13

空空如也

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

TA关注的人

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