- 博客(38)
- 资源 (40)
- 收藏
- 关注

转载 __declspec关键字详细用法
原文出处:http://os.pc004.com/jiqiao/1010/26/3587439.shtml【摘要】: __declspec用于指定所给定类型的实例的与Microsoft相关的存储方式。其它的有关存储方式的修饰符如static与extern等是C和C++语言的ANSI规范,而__declspec是一种扩展属性的定义。扩展属性语法简化并标准化了C和C++语言关于Microsoft的
2013-04-08 10:11:58
633

转载 log4cplus学习笔记(二)
原文出处:http://honey-bee.iteye.com/blog/65806log4cplus在很多方面做的都很出色,但是使用过程有些地方感觉不爽。在继续吹捧之前我先把不爽之处稍微提一提,然后继续介绍关于线程和套接字的知识。### 一些可以改进之处 ###1. 用户自定义LogLevel的实现机制不够开放在第五篇中曾经介绍过如何实现用户自行定义LogLevel,
2013-04-03 16:56:05
727

转载 log4cplus学习笔记(一)
原文出处:http://honey-bee.iteye.com/blog/65805(一)log4cplus是C++编写的开源的日志系统,功能非常全面,用到自己开发的工程中会比较专业的,:),本文介绍了log4cplus基本概念,以及如何安装,配置。 ### 简介 ###log4cplus是C++编写的开源的日志系统,前身是java编写的log4j系统.受Apache Softwa
2013-04-03 16:53:20
851

原创 关于Sleep()函数不准确和随机数的问题
前段时间因为有需求要模拟随机数据问题,用到Sleep()函数,随机函数当时我用的是srand() 和 rand()函数, 部分代码如下:for(int i = 0; i < tmpNum; i++){ srand(GetTickCount()); std::vector randId; for(int j = 0; j < pUser.size();) {
2012-08-22 15:19:12
2327

转载 如何检查内存泄漏 检查内存泄漏工具 BoundsChecker下载 BoundsChecker教程
先说个下载地址吧:http://download.youkuaiyun.com/source/1002260http://www.vckbase.com/tools/downtools.asp?id=22注册码就在压缩包的文本文档里面、之所以是6.01版的,因为它对VC++6支持的很爽BoundsChecker 是一个Run-Time错误检测工具,它主要定位程序在运行时期发生的各种错误。B
2012-04-10 09:40:38
568

原创 string类的实现(实现了一部分功能)
#ifndef _MSTRING_H_#define _MSTRING_H_#include using namespace std;namespace kaka{class String;/* * 输出操作符的重载函数 */std::ostream& operator<<(std::ostream &os,const String &a);/*
2012-02-07 12:20:13
676

原创 c语言itoa函数 和 atoi 函数大全
#include //atoi 函数int atoi_test(char array[]){ int count=0,sum=0,flag; while((array[count]==' ')||(array[count]=='\t')) { count++; } flag=('-'==array[count])?-1:1; //判断是否为负数;
2012-02-02 15:54:34
579

原创 二分查找法 c语言版本
int binary_search(int array[],int n,int value) { int left=0; int right=n-1; while (left<=right) { int middle=left + ((right-left)>>1); if (
2011-12-29 15:06:54
493

原创 c语言实现快速排序算法
设要排序的数组是A[0]……A[N-1],首先任意选取一个数据(通常选用第一个数据)作为关键数据,然后将所有比它小的数都放到它前面,所有比它大的数都放到它后面,这个过程称为一趟快速排序。值得注意的是,快速排序不是一种稳定的排序算法,也就是说,多个相同的值的相对位置也许会在算法结束时产生变动。 一趟快速排序的算法是: 1)设置两个变量I、J,排序开始的时候:I=0,J=N-1;
2011-12-15 14:50:38
1538
转载 开源日志库<log4cplus+VS2008使用>整理
作品出处:http://pyhcx.blog.51cto.com/713166/143549一.简介 log4cplus是C++编写的开源的日志系统,功能非常全面.本文介绍如何在Windows+VS2008中使用该日志库。 二.下载 可从网站[url]http://log4cplus.sourceforge.net[/url]上去下载 log
2013-03-26 09:48:15
777
原创 AnimateWindow设置窗口的动画效果
函数功能该函数能在显示与隐藏窗口时能产生特殊的效果。有两种类型的动画效果:滚动动画和滑动动画。BOOL AnimateWindow(HWND hWnd,DWORD dwTime,DWORD dwFlags);BOOL AnimateWindow(DWORD dwTime,DWORD dwFlags);参数hWnd:指定产生动画的窗口的句柄。dwTime:指明
2013-03-25 11:03:56
879
原创 很好的VC教程
大量源码http://www.vcproj.net/network-program/im/http://www.vckbase.com/index.php/video/index/fid/2 点击打开链接
2013-03-14 17:09:06
571
转载 MFC动态创建按钮及添加消息响应
MFC动态创建按钮及添加消息响应 动态控件是指在需要时由Create()创建的控件,这与预先在对话框中放置的控件是不同的。一、创建动态控件:为了对照,我们先来看一下静态控件的创建。放置静态控件时必须先建立一个容器,一般是对话框,这时我们在对话框编辑窗口中,从工具窗口中拖出所需控件放在对话框中即可,再适当修改控件ID,设置控件属性,一个静态控件就创建好了,当对话框被显示时,其上
2012-12-19 17:21:17
663
转载 Socket的错误码和描述
Socket的错误码和描述(中英文翻译)//下面是Socket Error的错误码和描述:Socket error 0 - Directly send error Socket error 10004 - Interrupted function //call 操作被终止 Socket error 10013 - Permission denied //c访问被拒绝
2012-09-18 21:11:11
1450
转载 C++多线程内存管理
原文:http://yachang.wang.blog.163.com/blog/static/35551220200762753057335/ 假设有一个进程,创建了两个线程A、B,线程A在堆上分配了一块内存空间,通知传指针的方式在B中使用,使用完后释放块,这时就会出错,因为线程B不能释放线程A堆上的内存空间,一些网友对此也有一些看法。 “有点经验可以告诉你,每个线程都有自己
2012-08-22 11:07:29
1376
转载 设计模式C++之二十(完结篇 & 面向对象原则)
Prototype(原型模式)20.1.解释概念:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。main(),客户ICloneableNow,只有一个接口CloneCMail,实体类CAdvTemplate,说明:通过克隆的方式很快速的得到一个新的对象,然后稍微修改就是一个全新的对象了,节省了重新创建对象对资源的大量占用。Mediator(中介者模
2011-12-14 12:51:12
1187
转载 设计模式C++之十九(State状态模式)
19.1.解释概念:允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类。main(),客户CLiftState,电梯状态抽象类CCloseingState,电梯门关闭COpenningState,电梯门打开CRunningState,电梯运行CStoppingState,电梯停止CContext,电梯的控制面板说明:CContext保持电梯的
2011-12-14 12:48:00
559
转载 设计模式C++之十八(Visitor访问者模式)
18.1.解释概念:表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。main(),客户IVisitor,访问者接口CBaseVisitor,访问者实现类CEmployee,被访问者抽象类CCommonEmployee,被访问者实现类之一CManager,被访问者实现类之二说明:A接受B的访问,B主动的执行访问
2011-12-14 12:47:15
990
转载 设计模式C++之十七(Chain of Responsibility责任链模式)
17.1.解释概念:使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。main(),客户IWomen,发出请求者接口CWomen,请求者实现类CHandler,处理请求抽象类CFather,处理请求实现类,责任链之一CHusband,处理请求实现类,责任链之二CSon,处理
2011-12-14 12:46:33
551
转载 设计模式C++之十六(Observer观察者模式)
16.1.解释概念:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。main(),IObservable,被观察者接口CHanFeiZiObservable,被观察者韩非子IObserver,观察者接口CLiSiObserver,观察者李斯CZhouSiObserver观察者周斯说明:将观察者聚集到被观察者韩非
2011-12-14 12:45:41
475
转载 设计模式C++之十五(Composite组合模式)
15.1.解释概念:将对象组合成树形结构以表示“部分-整体”的层次结构。Composite使得用户对单个对象和组合的使用具有一致性。main(),客户CCorpNode,抽象基类,实现基本信息CBranchNode,树枝节点,实现Addordinate()函数和GetSubordinate()函数CLeafNode,叶子节点,IsLeaf属性总是“true”说明:组合模式主
2011-12-14 12:44:57
1039
转载 设计模式C++之十四(Iterator迭代器模式)
14.1.解释概念:提供一种方法顺序访问一个聚合对象中各个元素,而又不需暴露该对象的内部表示。main(),客户IProject,产品接口CProject,产品类IIterator,迭代器接口IProjectIterator,产品迭代器接口CProjectIterator,产品迭代器实现类说明:CProject实现产品类,能够返回一个迭代器的指针。这个迭代器将封装产
2011-12-14 12:44:17
1050
转载 设计模式C++之十三(Decorator装饰模式)
装饰模式,动态地给一个对象添加一些额外的职责。就增加功能来说,Decorator模式相比生成子类更为灵活。13.1.解释main(),老爸ISchoolReport,成绩单接口CFourthGradeSchoolReport,四年级成绩单ReportDecorator,成绩单装饰器基类HighScoreDecorator,最高分装饰器SortDecorator,班级排名
2011-12-14 12:43:36
477
转载 设计模式C++之十二(Command命令模式)
命令模式,将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤消的操作。应该是一个比较简单的模式了。
2011-12-14 12:41:40
392
转载 设计模式C++之十一(Bridge桥梁模式)
桥梁模式,将抽象部分与它的实现部分分离,使它们都可以独立地变化。实现分离的办法就是增加一个类,11.1.解释main(),客户IProduct,产品接口CHouse,房子CIPod,ipodCClothes,服装CNewCorp,桥梁类,MakeMoney()是桥梁方法CNewHouseCorp,只能生产房子,所以构造函数是CHouse*CShanZhaiCor
2011-12-14 12:40:14
619
转载 设计模式C++之十(Builder建造者模式)
建造者模式,将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。一段晦涩难懂的文字,实现创建不同表示的方法就是给创建的过程传入创建的参数。详细的还是看代码吧。10.1.解释main(),客户CCarModel,产品模型CBenzModel,奔驰模型CBMWModel,宝马模型ICarBuilder,建造者接口CBenzBuilder,奔驰建造者
2011-12-14 12:39:21
400
转载 设计模式C++之九(Template Method模板方法模式)
模板模式也是相当简单的一种模式,而且是比较常用的。模板模式是定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。TemplateMethod使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。cbf4life举的例子是悍马车模型,更详细的例子说明可以参考原作者博客:cbf4life.cnblogs.com。这里只提出C++的设计和实现方法,以方便随用随取。9.1.解释main
2011-12-14 12:38:28
381
转载 设计模式C++之八(Adapter适配器模式)
适配器模式,使用之处比较特殊,不属于常规设计模式,主要用于不同系统之间的处理。是将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。也是一个比较简单的模式,直接上代码了。看代码:8.1.解释main(),主程序IUserInfo,本系统内接口CUserInfo,本系统内实现类IOuterUser,外系统接口
2011-12-14 12:37:38
443
转载 设计模式C++之七(AbstractFactory抽象工厂模式)
抽象工厂,提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。对于工厂方法来说,抽象工厂可实现一系列产品的生产,抽象工厂更注重产品的组合。看代码:7.1.解释main(),女娲IHuman,产品接口CYellowHuman,抽象产品之一CYellowFemaleHuman,具体产品之一CYellowMaleHuman,具体产品之二CWhiteHuma
2011-12-14 12:37:02
443
转载 设计模式C++之六(Facade门面模式)
Facade门面模式,也是比较常用的一种模式,基本上所有软件系统中都会用到。GOF 在《设计模式》一书中给出如下定义:为子系统中的一组接口提供一个一致的界面,Facade 模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。简单说,就是将复杂的逻辑封装起来,对外公开简单的接口,由客户程序调用。这里举了一个发送邮件的例子,我们理解为电子邮件吧,普通的邮件应该不需要告诉邮局,我们写的信
2011-12-14 12:36:15
597
转载 设计模式C++之五(Factory Method工厂方法模式)
工厂方法模式的意义是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类当中。核心工厂类不再负责产品的创建,这样核心类成为一个抽象工厂角色,仅负责具体工厂子类必须实现的接口,这样进一步抽象化的好处是使得工厂方法模式可以使系统在不修改具体工厂角色的情况下引进新的产品。这个例子更详细的内容及说明可以参考原作者博客:cbf4life.cnblogs.com。贴代码了。5.1.解释main()
2011-12-14 12:35:15
382
转载 设计模式C++之四(Multition多例模式)
多例模式,这个在GOF的模式设计里没有提到,但在实际工作中确实会用到。更详细的内容及说明可以参考原作者博客:cbf4life.cnblogs.com。4.1.解释main(),客户略说明:和单例基本一样,是有个数限制的单例。如果对于产生的实例个数没有限制,那就不是多例了,和普通的类没有区别。举例:曾经开发过一个从服务端以UDP协议,发送文件到客户端的程序。客户端连接服务端时采用
2011-12-14 12:34:14
786
转载 设计模式C++之三(Singleton单例模式)
单例模式看起来也蛮简单的,就是在系统中只允许产生这个类的一个实例,既然这么简单,就直接贴代码了。更详细的内容及说明可以参考原作者博客:cbf4life.cnblogs.com。3.1.解释main(),大臣CEmperor,需要单例的类说明:很多大臣拜见的皇帝,只有一个。体现在面向对象方面,CEmperor定义一个静态指针,和一个静态函数,私有化构造函数、析构函数、构造函数复制、重
2011-12-14 12:33:32
529
转载 设计模式C++之二(Proxy代理模式)
代理,一看名字就知道这只是个中介而已,真实的执行者在代理的后面呢。cbf4life在他的书里提的例子也很有趣,更详细的内容及说明可以参考原作者博客:cbf4life.cnblogs.com。现在贴代码,以方便随用随取。2.1.解释main(),西门庆IKindWomen,接口CWangPo,代理CPanJinLian,实际执行者之一CJiaShi,实际执行者之二说明:代
2011-12-14 12:32:37
512
转载 设计模式C++(Strategy策略模式)
1.1.解释main(),赵云CContext,锦囊IStrategy,策略接口CBackDoor,策略之一CGivenGreenLight,策略之二CBlockEnemy,策略之三说明:一个策略放到一个锦囊里。当用的时候,找到这个锦囊,从锦囊里拿出策略来使用。注意:锦囊只是简单的装载和调用策略,锦囊里没有逻辑。策略会有更大的自主权,运行更多的逻辑。看代码:
2011-12-14 12:31:02
838
转载 mysql 5.0存储过程学习总结
一.创建存储过程1.基本语法:create procedure sp_name()begin.........end2.参数传递二.调用存储过程1.基本语法:call sp_name()注意:存储过程名称后面必须加括号,哪怕该存储过程没有参数传递三.删除存储过程1.基本语法:drop procedure sp_
2011-12-12 15:18:43
535
1
转载 C语言字符串数大全+例子
函数名: stpcpy 功 能: 拷贝一个字符串到另一个 用 法: char *stpcpy(char *destin, char *source); 程序例: #include #include int main(void) { char string[10]; char *str1 = "abcdefghi"; stpcpy(s
2011-12-12 10:25:38
689
1
linux mysql 安装教程
2011-11-24
8583报文 介绍
2011-11-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人