阳光VIP

少壮不努力,老大徒伤悲。平日弗用功,自到临期悔。
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
上一页 1 ··· 73 74 75 76 77 78 79 80 81 ··· 139 下一页

2012年2月4日

摘要: 虚函数的内存布局一个拥有虚函数的类内部会有一个成员变量vptr,一个四字节大小的指针,指向虚函数表,虚函数表中记录了该类的各个虚函数的入口地址,如果该类重载了继承的虚函数,那么就存放自己的虚函数地址,否则就是父类的虚函数地址。class A{public: virtual void f(){}; virtual ~A(){};};class B:public A{ void f(){int i=0;};};A* pA=new B();pA->f();对于f的调用操作编译器有如下动作:void B::f()函数解释为void f(B* this);pA->f()解释为 (*pA-&g 阅读全文

posted @ 2012-02-04 21:49 阳光VIP 阅读(197) 评论(0) 推荐(0) 编辑

摘要: 1)使用wsdl2h命令,从wsdl文件中提取web service的信息到.h文件中wsdl2h c:/gsoaptemp/DataService.wsdl我的电脑是WinXP sp2,-o参数无效,并且wsdl文件也不能通过指定url来获取2)使用soapcpp2命令,编译刚才生成的.h文件中,产生代理类以及其他文件比如:DataServiceSoap.nsmap、soapC.cpp、soapClient.cpp、soapClientLib.cpp、soapDataServiceSoapProxy.h、soapStub.h3)建立vc8工程,注意引入wsock32.lib库文件,其余头文件 阅读全文

posted @ 2012-02-04 21:49 阳光VIP 阅读(123) 评论(0) 推荐(0) 编辑

摘要: 析构函数如果一个类想被别人继承,通常析构函数要声明为虚函数,否则,如下代码就会出现未定义情况。Base* p=new Derived();delete p;这句话反过来说,就是如果你不打算让别人派生你的类,就不要把析构函数声明为虚函数,当然对方是菜鸟的话,你也没办法。极端特殊情况下,只要使用者保证不会多态的析构(像上面的例子),也可以通融。继承与访问权限基类的private成员,只能由基类或者基类的友元访问,也就是说既不能被类外部的调用者(客户)访问,也不能被子类访问。或许是提供一种相对宽松的选择,protected成员允许派生类访问,但是拒绝外部调用者的访问。<<C++Prime 阅读全文

posted @ 2012-02-04 21:39 阳光VIP 阅读(145) 评论(0) 推荐(0) 编辑

2012年2月3日

摘要: Lucene.Net ResearchThe history of Lucene. 1What is the Lucene. 1Lucene.net basic objects. 2Behind the scenes of indexing. 8Concurrency rules of Lucene. 10The history of LuceneLucene的起源1997年末,Doug Cutting的工作任务不是很明确,Doug Cutting已经会编写搜索软件,这个时候他发现Java是一个不错的新语言,为了给自己找了个理由学习Java编程,他很自然的结合了自己会编写搜索程序的能力,编写了 阅读全文

posted @ 2012-02-03 12:12 阳光VIP 阅读(230) 评论(0) 推荐(0) 编辑

摘要: COM安全编程... 1基本介绍... 1认证的作用------. 1访问控制的作用------. 1令牌管理的作用-----. 2COM的安全设置参考... 2COM的安全设置方式:... 2客户和服务器的安全协商机制... 3CoInitializeSecurity函数... 4例一:服务器安全设置... 4例二:客户端安全设置... 6CoCreatanceInstanceEx函数... 7基本介绍COM安全的基础是Windows安全,在Windows中,安全的最小边界是进程,所以进程内组件通常不需要考虑安全,但是如果编写进程外组件,客户是否有权访问进程外的组件,就需要通过安全检查。CO 阅读全文

posted @ 2012-02-03 12:10 阳光VIP 阅读(271) 评论(0) 推荐(0) 编辑

摘要: 引自:http://blog.csdn.net/lidongfeng/archive/2006/05/24/752588.aspx今天闲来无事,突然想学习boost,看看这个庞大的基础类库里面到底有些啥东西,以下是我的安装使用过程:1、访问www.boost.org,下载源代码boost_1_33_1.exe,这个是个自解压文件,解压缩后放到了E:/boost_1_33_12、首先需要编译bjam工具,因为需要使用它来编译生成boost的库文件,进入命令提示符窗口:cd E:/boost_1_33_1/tools/build/jam_src,修改build.bat文件,将里面关于vc7的路径设 阅读全文

posted @ 2012-02-03 12:10 阳光VIP 阅读(211) 评论(0) 推荐(0) 编辑

摘要: 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+组件内部缓存了另一个组件接口指针时,你有没有遇到一些 阅读全文

posted @ 2012-02-03 12:09 阳光VIP 阅读(245) 评论(0) 推荐(0) 编辑

摘要: COM持久存储... 1持久存储的一般顺序... 1IStream接口应用... 1使用内存中预定义的IStream接口形式----. 1使用复合文件形式----. 2IPersistStreamInit接口... 2持久存储的一般顺序 组件实现了IPersistStream、IPersistStorage、IPersistPropertyBag接口。这些接口都提供了Load和Save方法。这些接口统称为IPersistMedium。 当需要保存组件的属性时------1)客户查询组件的IPersistMedium接口;2)调用IPersistMedium::GetClassID方法,然后将C 阅读全文

posted @ 2012-02-03 12:08 阳光VIP 阅读(226) 评论(0) 推荐(0) 编辑

摘要: 目录:ATL7.1创建连接点组件... 1目录:... 1一基础理论:... 11) 源对象和接收器对象... 12) 建立/断开连接... 13)连接点... 24) 同时支持多个连接点... 2连接点容器:... 2连接点映射表... 3激发事件... 3二工程范例:... 31)创建EventSource的ATL项目... 32)添加组件类... 43)添加事件方法... 6一 基础理论:1) 源对象和接收器对象接收器对象实现某个接口,源对象拥有该接口的指针,源对象可以调用该接口的方法。从而形成源对象以事件的方式通知接受器对象的效果。一个连接包含两部分,源对象和接收器对象。如图:ISpe 阅读全文

posted @ 2012-02-03 12:07 阳光VIP 阅读(329) 评论(0) 推荐(0) 编辑

摘要: COM聚合... 1聚合的概念... 1内部组件的实现... 2外部组件的实现... 14ATL7对内部组件的支持... 33分析:... 54DECLARE_CLASSFACTORY()宏-------------55DECLARE_AGGREGATABLE(T)宏---------------------87ATL7对外部组件的支持... 97聚合的概念聚合源自组件重用。当有两个组件A和B,他们分别实现了自己的接口IA和IB。如果有一个客户程序创建了A对象使得自己可以调用IA的方法,但同时又想获得IB的接口,调用IB的方法。这时候有两种做法:一种是客户程序创建B对象,还有一种方法是A组件内 阅读全文

posted @ 2012-02-03 12:06 阳光VIP 阅读(347) 评论(0) 推荐(0) 编辑

上一页 1 ··· 73 74 75 76 77 78 79 80 81 ··· 139 下一页