Welcome 微信登录

首页 / 软件开发 / C++

设计模式的解析和实现(C++)之十七-State模式

设计模式的解析和实现(C++)之十七-State模式

设计模式的解析和实现(C++)之十七-State模式2010-11-06 cppblog 李创作用:允许一个对象在其内部状态改变时改变它的行为.UML结构图:解析:State模式主要解决的是在中时常遇到的根据不同的状态需要进行不同的处理操作的问题,而这样的问题,大部分人是采用switch-case语句进行处理的,这样会造成一个问题:分支过多,而且如果加入一个新的状态就需要对原来的代码进行编译.State模式采用了对这些不同的状态进行封装的方式处理这类问题,...
编译OpenH323

编译OpenH323

编译OpenH3232009-10-061.介绍这是一篇彻底讲解如何用MSVC6.0建立Openh323的文章。这个篇文章是上一篇文章的延续,所以你需要在上篇文章的基础才能建立Openh323的工程。2.首要条件。如果要编译Openh323需要以下条件:1.安装有MSVC6.0或VS.net2003(本文没有.net下编译的介绍)2.一个以编译的PWlib的环境。3.一个Openh323源代码的压缩包,4.解压工具,类似于winzip。3.下载和安装Ope...
设计模式的解析和实现(C++)之十八-Iterator模式

设计模式的解析和实现(C++)之十八-Iterator模式

设计模式的解析和实现(C++)之十八-Iterator模式2010-11-06 cppblog 李创作用:提供一种方法顺序访问一个聚合对象中各个元素,,而又不需暴露该对象的内部表示.UML结构图:解析:Iterator几乎是大部分人在初学C++的时候就无意之中接触到的第一种设计模式,因为在STL之中,所有的容器类都有与之相关的迭代器.以前初学STL的时候,时常在看到讲述迭代器作用的时候是这么说的:提供一种方式,使得算法和容器可以独立的变化,而且在访问容器对...
控制CComboBox中ListBox的DropDown & Back

控制CComboBox中ListBox的DropDown & Back

控制CComboBox中ListBox的DropDown & Back2009-10-06问题背景这是UE的一个要求,是在CComboBox下拉出ListBox的时候,弹出一个选择窗口,然后选中一项,显示在CComboBox的Edit中同事的做法是在ComboBox的父窗口捕捉ComboBox的CBN_DROPDOWN通知消息,在消息响应函数中弹出选择窗口,然后为ComboBox设置Strings和选中项。但是不好的现象是,因为是在处理下拉的消息,...
深入了解VC++编译器

深入了解VC++编译器

深入了解VC++编译器2009-10-06 csdn AtlasZhao大家可能一直在用VC开发软件,但是对于这个编译器却未必很了解。原因是多方面的。大多数情况下,我们只停留在“使用”它,而不会想去“了解”它。因为它只是一个工具,我们宁可把更多的精力放在C++语言和软件设计上。我们习惯于这样一种“模式”:建立一个项目,然后写代码,然后编译,反反复复调试。但是,所谓:“公欲善...
设计模式的解析和实现(C++)之十九-Memento模式

设计模式的解析和实现(C++)之十九-Memento模式

设计模式的解析和实现(C++)之十九-Memento模式2010-11-06 cppblog 李创作用:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态.这样以后就可将该对象恢复到原先保存的状态.UML结构图:解析:Memento模式中封装的是需要保存的状态,当需要恢复的时候才取出来进行恢复.原理很简单,实现的时候需要注意一个地方:窄接口和宽接口.所谓的宽接口就是一般意义上的接口,把对外的接口作为public成员;而窄接口反之,把...
设计模式的解析和实现(C++)之二十-Visitor模式

设计模式的解析和实现(C++)之二十-Visitor模式

设计模式的解析和实现(C++)之二十-Visitor模式2010-11-06 cppblog 李创作用:表示一个作用于某对象结构中的各元素的操作.它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作.UML结构图:解析:Visitor模式把对结点的访问封装成一个抽象基类,通过派生出不同的类生成新的访问方式.在实现的时候,在visitor抽象基类中声明了对所有不同结点进行访问的接口函数,如图中的VisitConcreateElementA函数等,这...
VC下实现定时任务的方法讨论

VC下实现定时任务的方法讨论

VC下实现定时任务的方法讨论2009-10-06实现定时任务无非就是想在未来的某一时刻执行一个任务,最先想到的就是WM_TIMER消息。方法1:WM_TIMER消息无论是否是窗口函数都可以使用它启动:SetTimer(HWND hWnd,UINT uID,UINT uElapse,TIMERPROC lpTimerFunc);停止:KillTimer(UINT uID);在MFC中封装了上面的函数将HWND hWnd参数去掉即可。有窗口将lpTimerFu...
设计模式的解析和实现(C++)之二十一-完结篇

设计模式的解析和实现(C++)之二十一-完结篇

设计模式的解析和实现(C++)之二十一-完结篇2010-11-06 cppblog 一个月下来,把常见的20个设计模式好好复习并且逐个用C++实现了一遍,收获还是很大的,很多东西看上去明白了但是真正动手去做的时候发现其实还是不明白--我深知这个道理,于是不敢怠慢,不敢写什么所谓的解释原理的伪代码,不敢说所谓的"知道原理就可以了"....因为我知道,我还还没有资格说这个话,至少对于设计模式而言我还是一个初学者,唯有踏实和实干才能慢慢的掌握...
VC用递归的方法画分形图

VC用递归的方法画分形图

VC用递归的方法画分形图2009-10-06分形几何是数学领域里新兴的课题,如果将图形的每个元素按某种规则进行变形,得到新的图形,以此类推,进行若干次变形后得到的图形就是分形图形。Couch曲线是最典型的分形图形:将一条线段按照图1进行变换,得到图1,再将图1中的每条线段按图1的折线变换得到图2,以此类推,进行6次变换就得到图6,如果进行无限次变换,就得到的是Couch曲线,Couch曲线的维数不是整数维,更多详情请见分形方面的书籍。用分形图形能画图许多漂...
用户名不同的计算机之间的调用dcom

用户名不同的计算机之间的调用dcom

用户名不同的计算机之间的调用dcom2009-10-07DCOM是依赖于RPC服务的,是一种分布式远程过程(进程)调用,调用代码在远程主机上执行,使用远程主机的系统资源,因此要有远程主机所属的访问权限,一般来说访问用户应是远程主机本地用户或主机所属的域用户,所以第一步是在远程主机或其域上注册(获得)一个有足够权限的用户,第二步是使用此用户令牌激活远程COM服务器,方法是使用CoInitializeSecurity & CoCreateInstanc...
利用C++ Builder为计算机增加启动日志

利用C++ Builder为计算机增加启动日志

利用C++ Builder为计算机增加启动日志2010-11-24公用机房或办公室中的计算机通常是大家共享使用的,作为管理者或“主要”使用者很想掌握机器何时被开启使用过,若有一个启动记录就可以随时了解这些情况。本文给出如何用C++ Builder 5实现这样一个程序的编制,使每次启动计算机即执行本程序,在注册表中记录开机时间等信息,以便随时通过注册表编辑器查看。程序特点:每次启动计算机都要执行一次(这一功能由本程序自动完成而不必手工...
谁动了我的指针?

谁动了我的指针?

谁动了我的指针?2009-10-07译者序:本文介绍了一种在调试过程中寻找悬挂指针(野指针)的方法,这种方法是通过对new和delete运算符的重载来实现的。这种方法不是完美的,它是以调试期的内存泄露为代价来实现的,因为文中出现的代码是绝不能出现在一个最终发布的软件产品中的,只能在调试时使用。在VC中,在调试环境下,可以简单的通过把new替换成DEBUG_NEW来实现功能更强更方便的指针检测,详情可参考MSDN。DEBUG_NEW的实现思路与本文有相通的地...
教你用C++ Builder实现VFP数据库开发

教你用C++ Builder实现VFP数据库开发

教你用C++ Builder实现VFP数据库开发2010-11-24C++Builder拥有卓越的数据库网络开发功能,可以存取各种关系型数据库,提供高效的数据感知组件和数据存取组件,它不仅可为C/S结构提供客户端程序,而且可开发应用服务器程序,实现多层应用程序体系结构,是VFP数据库进行网络开发的最佳选择。VFP数据库系统有两种方式建立数据表,一种是建立与FoxPro兼容的自由表,另一种是建立数据库,数据库中包含数据表及关系,因此在C++ Builder中...
如何快速检测PocketPC是否已经连接到PC上

如何快速检测PocketPC是否已经连接到PC上

如何快速检测PocketPC是否已经连接到PC上2009-10-07如果在程序中检测PocketPC(以下简称PPC)是否已经连接到PC上。PocketPC SDK提供了一组RAPI函数,我们可以通过其中的CeRapiInit或者CeRapiInitEx来检测。先说CeRapiInit,它的定义是:HRESULT CeRapiInit(void);这个函数调用起来比较简单一些,只需要检测其返回值就可以。但是当PPC并没有连接到PC上时,该函数会一直等待而不...
VC++删除浮动工具条中“关闭”按钮

VC++删除浮动工具条中“关闭”按钮

VC++删除浮动工具条中“关闭”按钮2009-10-07在Visual C++自动生成的MFC框架应用程序中,当浮动工具条被拖离主框架窗口后,一般都会在工具条的右上角有一个"关闭"按钮,应该说这个按钮完全是按照Windows应用程序的用户界面(UI)设计规范而设计的,也就是说所有的窗口都应该有一个地方让用户可以关闭这个窗口。但是有的开发人员偏偏提出来不想要这个"关闭"按钮。本实例通过自定一个扩展的工具条类,实现了删除...
GRETA正则表达式模板类库

GRETA正则表达式模板类库

GRETA正则表达式模板类库2010-11-24胡金山本文摘要翻译了几篇文章的内容,简单介绍 ATL CAtlRegExp,GRETA, Boost::regex 等正则表达式库,这些表达式库使我们可以方便地利用正则库的 巨大威力,给我们的工作提供了便利。正则表达式语法字符元意义.匹配单个字符[ ]指定一个字符类,匹配方括号内的任意字符。例:[abc] 匹配 "a", "b"或 "c"。^如果^出...
<< 221 222 223 224 225 226 227 228 229 230 >>