09 2006 档案
摘要:为了解决动态访问多种数据库的问题,我们需要使用创建型模式。ADO.NET2.0提供了基于Singleton、AbstractFactory和Factory Method模式的工厂类。现在我来研究一下。ADO.NET主要包含连接类和非连接类。这些类又被划分为四大系列:odbc,ole db,oracle,sql server。DbConnection继承了IDbConnection接口,并且有四个子类:SqlConnection、OleDbConnection、OdbcConnection、OracleConnection。DbCommand继承了IDbCommand接口,并且有五个子类,增加了
阅读全文
摘要:关于正则表达式:正则表达式简介(微软篇)之一正则表达式如果原来没有使用过正则表达式,那么可能对这个术语和概念会不太熟悉。不过,它们并不是您想象的那么新奇。 请回想一下在硬盘上是如何查找文件的。您肯定会使用 ? 和 * 字符来帮助查找您正寻找的文件。? 字符匹配文件名中的单个字符,而 * 则匹配一个或多个字符。一个如 'data?.dat' 的模式可以找到下述文件: data1.dat data2.dat datax.dat dataN.dat 如果使用 * 字符代替 ? 字符,则将扩大找到的文件数量。'data*.dat' 可以匹配下述所有文件名: data.d
阅读全文
摘要:vcredist_x86.exe通常在C:/Program Files/Microsoft Visual Studio 8/SDK/v2.0/BootStrapper/Packages/vcredist_x86目录下面Msdia71.dll Atl80.dllMfc80.dllMfc80chs.dllMfc80cht.dllMfc80deu.dllMfc80enu.dllMfc80esp.dllMfc80fra.dllMfc80ita.dllMfc80jpn.dllMfc80kor.dllMfc80u.dllMfcm80.dllMfcm80u.dllMsvcm80.dllMsvcp80.dll
阅读全文
摘要:http://www.tblog.com.cn/trackback.asp?tbID=314
阅读全文
摘要:设计模式学习整理之创建型模式概述定义----通过抽象实例化的过程,帮助一个系统独立于如何创建、组合和表示它的那些对象。创建型模式属于对象创建模型。所谓对象创建模型就是说将实例化的工作委托给另一个对象来做。与之相对应的是类创建模型,这是一种通过继承改变被实例化的类。 创建型模式有两个重要的特点:1)客户不知道创建的具体类是什么(除非看源代码)2)隐藏了类的实例是如何被创建和放在一起的这两个重要的特点是通过抽象类的虚接口技术做到的,这样设计者可以决定何时、何地、如何创建和由谁来创建。 迷宫模型,见下图MapSite是所有迷宫中基本构件的基类,提供了一个纯虚函数EnterMaze是Romm的集合类.
阅读全文
摘要:1)build up a inprocess component project2)Add a class named as CFBAddIn implemented the IFBAddIn Interface by using ATL Simple Object Wizard.CFBAddIn supports IsupportErrorInfo interface.3)Add the functionality implementing the _IDTExtensibility2 event interface in the CFBAddIn class.The interface i
阅读全文
摘要:The arcticle of codeproject is very clear about using CppUnit.http://www.codeproject.com/library/Using_CPPUnit.aspBut I will speak about some important issues about the upon article:1)If we use vs2005,RTTI setting is enalbed defaultly.We needn't to do it.2)We can down load the source code from h
阅读全文
摘要:#pragma once#include <string>using namespace std;class ci_char_traits :public std::char_traits<char>{public:static bool eq(char c1,char c2){return toupper(c1)==toupper(c2);}static bool lt(char c1,char c2){return toupper(c1)<toupper(c2);}static int compare(const char* s1,const char* s2
阅读全文
摘要:目录ATL7.1编写ActiveX控件... 1目录... 1一创建ATL项目... 1二创建ActiveX控件... 2三解释向导的行为... 3四标准属性... 4背景属性... 4五 Unicode风格编码... 11六用OpenGL绘制笛卡尔坐标系... 11七自定义属性... 15八自定义方法... 17九标准方法... 17十标准事件... 18十一自定义事件... 18一 创建ATL项目我们创建dll形式的ATL项目EllipseCase 如下图:二 创建ActiveX控件我打算创建一个Ellipse控件,该控件拥有背景属性,可以改变背景颜色。该控件绘制一个笛卡尔坐标系,用户可以
阅读全文
摘要:COM聚合... 1聚合的概念... 1内部组件的实现... 2外部组件的实现... 14ATL7对内部组件的支持... 33分析:... 54DECLARE_CLASSFACTORY()宏-------------55DECLARE_AGGREGATABLE(T)宏---------------------87ATL7对外部组件的支持... 97聚合的概念聚合源自组件重用。当有两个组件A和B,他们分别实现了自己的接口IA和IB。如果有一个客户程序创建了A对象使得自己可以调用IA的方法,但同时又想获得IB的接口,调用IB的方法。这时候有两种做法:一种是客户程序创建B对象,还有一种方法是A组件内
阅读全文
摘要:目录:ATL7.1创建连接点组件... 1目录:... 1一基础理论:... 11) 源对象和接收器对象... 12) 建立/断开连接... 13)连接点... 24) 同时支持多个连接点... 2连接点容器:... 2连接点映射表... 3激发事件... 3二工程范例:... 31)创建EventSource的ATL项目... 32)添加组件类... 43)添加事件方法... 6一 基础理论:1) 源对象和接收器对象接收器对象实现某个接口,源对象拥有该接口的指针,源对象可以调用该接口的方法。从而形成源对象以事件的方式通知接受器对象的效果。一个连接包含两部分,源对象和接收器对象。如图:ISpe
阅读全文
摘要:COM持久存储... 1持久存储的一般顺序... 1IStream接口应用... 1使用内存中预定义的IStream接口形式----. 1使用复合文件形式----. 2IPersistStreamInit接口... 2持久存储的一般顺序 组件实现了IPersistStream、IPersistStorage、IPersistPropertyBag接口。这些接口都提供了Load和Save方法。这些接口统称为IPersistMedium。 当需要保存组件的属性时------1)客户查询组件的IPersistMedium接口;2)调用IPersistMedium::GetClassID方法,然后将C
阅读全文
摘要:COM+编程研究之对象池、JITA. 1前言:... 1基本概念:... 1创建组件FBTEST:2IObjectControl接口简介:... 4测试COM+是如何激活/钝化TEST对象的:... 4传统的进程内调用com组件方式:... 5COM+对象池调用方式:... 5COM+JITA调用方式:... 6对象池、JITA结合的调用方式... 7多客户调用情况... 7结论:... 8前言:你有没有在开发COM+组件?你明白COM与COM+的区别么?你有没有在使用COM+的对象池,你有没有碰到过不能远程调试的问题?或者当你在一个COM+组件内部缓存了另一个组件接口指针时,你有没有遇到一些
阅读全文
摘要:COM安全编程... 1基本介绍... 1认证的作用------. 1访问控制的作用------. 1令牌管理的作用-----. 2COM的安全设置参考... 2COM的安全设置方式:... 2客户和服务器的安全协商机制... 3CoInitializeSecurity函数... 4例一:服务器安全设置... 4例二:客户端安全设置... 6CoCreatanceInstanceEx函数... 7基本介绍COM安全的基础是Windows安全,在Windows中,安全的最小边界是进程,所以进程内组件通常不需要考虑安全,但是如果编写进程外组件,客户是否有权访问进程外的组件,就需要通过安全检查。CO
阅读全文
浙公网安备 33010602011771号