自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 收藏
  • 关注

原创 观察者模式(Observer)

<br />观察者模式:<br />在对象之间定义一对多的依赖,这样一来,当一个对象改变状态,依赖它的对象会受到通知,并自动更新。<br /> <br />推模式: 在发送状态改变通知同时传递状态信息。 <br />拉模式: 仅仅发送通知,观察者在受到通知后主动查询所关注的状态信息。

2011-05-16 22:45:00 442

原创 策略模式(Strategy)

<br /> <br />策略模式:<br />定义算法簇,分别封装起来,让他们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。<br /> 

2011-05-16 22:41:00 467

原创 组合模式(Composite Patten)

<br />组合模式: 允许你将对象组合成树形结构来表现“整体/部分”层次结构。组合能让客户以一致的方式处理个别对象以及对象组合。<br /> <br />组合模式让我们能用树形方式创建对象的结构,树里边包含了组合以及个别的对象。<br />使用组合结构,我们能把相同的操作应用在组合和个别对象上,换句话说,在大多数情况下,我们可以忽略对象组合和个别对象之间的差别。<br /> <br />组合模式以单一责任设计原则换取透明性(Transparency)。 什么是透明性?通过让组件的接口同时包含一些管理子节点

2011-05-01 22:27:00 433

原创 设计原则

单一职责: 一个类应该只有一个引起变化的原因。 类的每个责任都有改变的潜在区域,超过一个责任,意味着超过一个改变区域。这个原则告诉我们尽量让每个类保持单一责任。

2011-05-01 21:16:00 468

原创 迭代器模式(Iterator)

<br />迭代器模式: 提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴漏起内部的表示。<br /> <br />一个聚集对象,而且不管这些对象是什么都需要遍历的时候,你就应该考虑迭代器模式。 <br />你需要对聚集有多种方式遍历时,可以考虑迭代器模式。<br />为遍历不同的聚集结构提供next,hasnext等统一接口。<br /> <br /><br />

2011-05-01 21:11:00 447

转载 windows编程经典书籍

<br />windows编程经典书籍 <br />本人是刚刚开始学习windows编程的,感觉看雪学院的大牛很NB.想找一些书籍来看学习学习,可是不知道看哪些书好.<br />驱动,对菜鸟们来说真是一个很深奥的话题,所以 ,我找来了这篇文章供大家分享,以后大家发现什么好书就在楼下跟贴吧! <br />作者:Harry Meng 来源:互联网.<br />也许我的阅读面过于狭小,书架里基本上都是Jeffrey Richter,Charles Petzold,侯捷老师以及潘爱民老师的书,这些书一直陪伴着我,并

2011-04-29 23:05:00 642

转载 __declspec( selectany ) 含义

__declspec( selectany ) 含义<br />C/C++2007-12-30 14:22:31阅读199评论0  字号:大中小 订阅<br />selectany使用在c/c++工程的连接期间,一般用得很少,所以很陌生,最近在MFC的源代码中发现,查一下MSDN,很难懂,看了很久才明白了一眯。这里翻译一下。<br />这个属性告诉编译器声明的全局变量是一个"任一拣选"(pick-any)COMDAT.在连接时间,如果多个COMDAT定义能看到,连接器选择一个并且丢弃所有的剩余的。如果连接器

2010-11-16 17:24:00 4551

转载 english introduce

<br />Good morning !  <br />It is really my honor to have this opportunity for an interview,  <br />I hope i can make a good performance today. I'm confident that I can succeed.  <br />Now i will introduce myself briefly  <br />I am 26 years old,born in sh

2010-11-05 21:57:00 1016

原创 暂存

CreateThread()使用小结2009-03-05 10:18<br />DWORD ThreadId;<br />HANDLE hThread=CreateThread(NULL,<br />                                                     0,<br />                                                      (LPTHREAD_START_ROUTINE)ThreadFunc,<br />

2010-09-20 22:27:00 411

原创 ATL---Collection & Enumerater(3)

<br />练习三: 使用CComEnumOnSTL实现,使用的IEnumVARIANT枚举接口;使用ICollectionOnSTLImpl实现集合。<br />这种方法基本全由ATL模板提供实现,组件基本上不用写什么代码。<br /> <br />1.IDL文件<br />import "oaidl.idl";import "ocidl.idl";[ object, uuid(2D44DAAD-98D9-4786-A91C-848D6DBEC1D1), dual, nonex

2010-09-19 20:40:00 646

原创 ATL---Collection & Enumerater(2)

<br />练习一: 使用CComEnumOnSTL实现,使用的IEnumVARIANT枚举接口,自定义复制策略_CopyVariantFromLong,实现使用vector<long>存储数据。<br /> <br />1.IDL文件<br />import "oaidl.idl";import "ocidl.idl";[ object, uuid(378B8756-3FD2-4CCC-9A50-C1352C7D5FBC), dual, nonextensible, hel

2010-09-19 20:30:00 773

原创 ATL---Collection & Enumerater(1)

<br />最近工作需要,正在研究ATL/COM方面的东东。今天正好看到了集合(Collection)和枚举器(Enumerater),这个两个东东个人觉得不是很好理解,反正我是看了好几遍书,然后又在网上找了些资料,才算勉强有些入门,然后写了几个小练习。<br /> <br />练习一: 使用CComEnum实现,使用的IEnumVARIANT枚举接口<br /> <br />1.IDL文件<br /> <br />import "oaidl.idl";import "ocidl.idl";[

2010-09-19 20:21:00 931

转载 VC++ 出现错误:cannot convert from 'const char [7]' to 'LPCWSTR'和 宏 _T()用处

<br />解决方法:<br />方法一:<br />  菜单栏->project->xxx properties->Configuration Properties->General->Character Set,改成“not set”或改成“Use Multi-Byte Character Set”。<br />方法二:<br />  在const char前加上_T宏,进行转换。<br />  例如:_T("编码器设置错误,请稍后再试!")。<br />  使用_T宏,要加上tchar.h头文件,不然

2010-08-04 21:21:00 896

原创 潘爱民::介绍一本关于ATL的书《ATL Internals》 ----转

面对计算机图书市场的繁荣景象,我经常感叹今天学习计算机开发技术的同道们是多么幸运。十年前,我们学习计算机语言非常不容易,要掌握各种开发工具只有靠自己的摸索和极少量的参考手册。我记得,94年我学习Visual C++和MFC的时候,基本上只有靠软件自带的联机帮助;现在情形大不同了,书店中的计算机图书琳琅满目,关于Visual C++和MFC的书籍尤其多。有几位编辑朋友劝我写一点这方面的书,我觉得不大有必要了,因为Visual C++的好书已经不少了,适合各种读者层次的书籍几乎都可以买到,而且有一些书还相当不错

2010-08-02 22:07:00 1134

转载 垫片类(自我的解释)

最近读潘爱民先生翻译的《COM本质论》,看到了一个新名词“垫片类”(不要骂我老土,我真的是第一次见..),用来实现类型的转换。作者实现了一个_UNCC的垫片,实现了从TCHAR字符串到wchar_t类型字符串的转换。看一下原书中的例子:HRESULT IIDFromHWND(HWND hwnd, IID& riid){ TCHAR szEditText[1024]; GetWindowText(hwnd, szEditText, 1024); return IIDFromString(_UNCC(szEdi

2010-07-25 10:59:00 647

转载 介绍几本COM的书籍

介绍几本COM的书籍书籍 资料2009-07-14 18:40:55阅读31评论0字号:大中小http://www.xfbbs.com/Book/others/jishidaquan/8/7314.html欲学COM之必读书籍---《COM技术内幕》书名:《COM技术内幕》英文原名:《Inside COM》作者:(美)Dale RogersonMicrosoft Press 1997中文译者:杨秀章清华大学出版社 1999年3月第1版定价:50.00元(带光盘)Microsoft Press的《Inside

2010-07-23 09:28:00 1155

转载 《新标准日本语初级》词汇精解:第一课

<br />第一課 李さんは中国人です<br /><br /><br />ちゅうごくじん(中国人) ④〔名〕 中国人<br /> ∷ほんじん(日本人) ④〔名〕 日本人<br /> ~んこくじん(韓国人) ④〔名〕 韩国人<br />  アメリカじん(~人) ④〔名〕 美国人<br />  フランスじん(~人) ④〔名〕 法国人 <br />注释:<br />  「人」作为结尾词时有时读「じん」、有时读「にん」。当接在名词、地名后时读「じん」。如:<br />  ★ 知識人(ちしきじん) 知识分子 <b

2010-07-04 18:26:00 824

转载 SQL FULL JOIN 关键字

SQL FULL JOIN 关键字<br />只要其中某个表存在匹配,FULL JOIN 关键字就会返回行。FULL JOIN 关键字语法SELECT column_name(s)FROM table_name1FULL JOIN table_name2ON table_name1.column_name=table_name2.column_name<br />注释:在某些数据库中, FULL JOIN 称为 FULL OUTER JOIN。原始的表 (用在例子中的):<br />"Per

2010-06-28 16:54:00 692

转载 总结C++中的所有强制转换函数(const_cast,reinterpret_cast,static_cast,dynamic_cast)

<br /><br /><br />C 风格(C-style)强制转型如下:<br /><br />(T) expression // cast expression to be of type T<br /><br />函数风格(Function-style)强制转型使用这样的语法:<br /><br />T(expression) // cast expression to be of type T<br /><br />这两种形式之间没有本质上的不同,它纯粹就是一个把括号放在哪的问题。我把这两种形式称

2010-06-27 20:40:00 445

原创 C++ 获取系统时间

<br />#include<time.h> <br />#include<iostream> <br /><br />using namespace std; <br /><br />int main() <br />{ <br />time_t timeval; <br />timeval=time(NULL); <br />cout<<"Time as local time is "<<ctime(&timeval)<<endl; <br />return 0; <br />} <br /><br /

2010-06-25 16:22:00 1294

转载 C++模板特化

对模板特化的理解:特化整体上分为全特化和偏特化,这一点大家都没有什么置疑,但是细分它们各包括哪几种状态就很难界定了,而且很多权威的书上都不一致,管它呢,反正我们能会用各种特化就可以了。下面就谈谈我个人对特化的划分和定义:所谓特化,就是将泛型的东东搞得具体化一些,从字面上来解释,就是为已有的模板参数进行一些使其特殊化的指定,使得以前不受任何约束的模板参数,或受到特定的修饰(例如const或者摇身一变成为了指针之类的东东,甚至是经过别的模板类包装之后的模板类型)或完全被指定了下来。这是网上某个人的一些看法:模板

2010-06-24 17:09:00 959

转载 C++语言及网络编程书籍整理

C++语言及网络编程书籍整理                                                           作者: 谢勇    都是我看过或正要看的书,晾晾书架,希望对后来者也有一点作用,当年我也是浪费时间看了一些没有价值的书籍,颇为后悔,现将精华总结如下:c语言篇:(虽有人说学C++不用先学c,但我颇不以为然,不知数据为何,又何来的封装继承多态)    1:c语言入门大学教程c语言谭浩强版足以。    2:windows c语言API编程基础,推荐《windows程序

2010-06-22 13:34:00 953

原创 常见排序算法(附C++代码实现) new

1.冒泡排序冒泡排序遍历数组中的值,进行比较,并把最大的数值一道数组的顶端(就像气泡升到水面上)。第一次迭代把数组最大的值移到数组顶端。第二次迭代把第二大的值移到仅次于顶端的位置。第三次迭代移动第三大值,以此类推。 view plaincopy to clipboardprint?//冒泡排序   void BubbleSort(int array[],int n)   {       for (int i = n-1;i>0;i--)       {           for (int j=0;j   

2010-06-21 17:31:00 467

原创 笔试常见链表题

<br />#include <iostream>using namespace std;struct Node{ int data; Node* next;};//检测给定链表是否有环bool CheckList(const Node* MyNode ){ if (MyNode == NULL) { return false; } const Node *low = MyNode; Node *fast = MyNode->next; wh

2010-06-19 17:08:00 565

转载 关于标准库中的ptr_fun/binary_function/bind1st/bind2nd

<br />以前使用bind1st以及bind2nd很少,后来发现这两个函数还挺好玩的,于是关心上了。<br />在C++ Primer对于bind函数的描述如下:<br />“<br />绑定器binder通过把二元函数对象的一个实参绑定到一个特殊的值上将其转换成一元函数对象<br /><br />C++标准库提供了两种预定义的binder 适配器bind1st 和bind2nd 正如你所预料的bind1st 把值绑定到二元函数对象的第一个实参上bind2nd 把值绑定在第二个实参上<br />例如<br

2010-06-18 19:22:00 531

转载 转载:对0基础MFC者的一点建议!!

<br />对0基础MFC者的一点建议 <br />因为上半年自己刚刚学了点MFC,算是对MFC有了点了解。但也只算是会使用,至于对其更多的细节算不上了解。所以其实所知甚少。这里所要讲的,只是帮助从未接触过MFC的人更快地了解和能使用MFC,减少入门的时间,至于其核心原理,我爱莫能助。另外,因为我在深圳学习MFC期间做的笔记无缘丢失,所以当时总结的很多东西都没有保存下来。所以很多东西都有点忘了,有些想提醒的东西都记不太清楚。所以本文的水准就大为下降。 <br />这里得先提一个东西。就是VC与MFC的关系。

2010-06-18 19:17:00 573

转载 链表是否有环?环入口点?

1、如何判断一个链表是不是这类链表?  2、如果链表为存在环,如果找到环的入口点?解答:一、判断链表是否存在环,办法为:设置两个指针(fast, slow),初始值都指向头,slow每次前进一步,fast每次前进二步,如果链表存在环,则fast必定先进入环,而slow后进入环,两个指针必定相遇。(当然,fast先行头到尾部为NULL,则为无环链表)程序如下:bool IsExitsLoop(slist *head) { slist *slow = head, *fas

2010-06-17 19:34:00 692

转载 C++面试汇总

1.是不是一个父类写了一个virtual 函数,如果子类覆盖它的函数不加virtual ,也能实现多态?<br />virtual修饰符会被隐形继承的。<br />private 也被集成,只事派生类没有访问权限而已<br />virtual可加可不加<br />子类的空间里有父类的所有变量(static除外)<br />同一个函数只存在一个实体(inline除外)<br />子类覆盖它的函数不加virtual ,也能实现多态。<br />在子类的空间里,有父类的私有变量。私有变量不能直接访问。<br

2010-06-17 17:13:00 682

转载 C/C++笔试、面试题目大汇总----转贴

<br />1.求下面函数的返回值(微软)<br />int func(x)<br />{<br />int countx = 0;<br />while(x)<br />{<br />countx ++;<br />x = x&(x-1);<br />}<br />return countx;<br />}<br />假定x = 9999。 答案:8<br />思路:将x转化为2进制,看含有的1的个数。<br />2. 什么是“引用”?申明和使用“引用”要注意哪些问题?<br />答:引用就是某个目标变量

2010-06-16 14:40:00 430

转载 临时记录--MultiByteToWideChar,WideCharToMultiByte

LPCTSTR在UNICODE下是第字占双字符,也就是其内部使用的是wchar_t, 多字符是每个占二个字符的,而char是占一个字符的,你这么直接转就丢失了一半内容了。 可以用MultiByteToWideChar和WideCharToMultiByte实现多字节与宽字节之间的转换。这个是我们需要转化的多字节字符串: char sText[20] = {"多字节字符串!OK!"}; 我们需要知道

2009-10-09 22:00:00 1420

原创 使用ACE_DLL加载动态库小练习

首先创建一个DLL,命名为MyACEDLL,编译并生成MyACEDLL.dll。 创建一个记载DLL的工程,命名为Test_ACE_Load。 配置工程:1.Test_ACE_Load--->属性--->配置属性--->链接器--->常规--->附加库目录--->D:/SDK_ROOT/ACE_wrappers/lib(这个根据你自己的ACE目录修改) 2.Test_A

2009-09-29 20:21:00 3064

转载 ACE环境搭建

 The ADAPTIVE Communication Environment (ACE) 是一套免费的、开源的面向对象框架,它为大规模并发通信软件实现了许多核心的设计模式。ACE提供了一套丰富的、可重用的C++封装类和框架组件,并且可以跨平台实现大多数常见的通信软件的功能。本文将通过几个非常简单,并且可以说是粗糙的小例子,为大家讲述ACE的安装及配置过程。通过这些简单的小例子,带领大家以最快的速

2009-09-28 20:47:00 2216 1

空空如也

空空如也

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

TA关注的人

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