02 2007 档案
摘要: 在这电视剧中,喜欢夫差多一些,夫差绝对是性情中人,有着凡人的喜怒哀乐,也有伟人所有的霸气和魄力,如果他的敌手不是勾践的话,吴国霸业可成。只是历史总喜欢干点“既生瑜,又生亮”的事,偏偏让夫差碰着了勾践,原谅我,实在不知用什么词能形容勾践,是一个神,还是一个魔?
阅读全文
摘要:
包容和聚合实际上是使一个组件使用另外一个组件的一种技术。在包容的情况下,外部组件将包含内部组件。在聚合的情况下,外部组件聚合内部组件。
在此设想一下,外部组件是我们的要实现的组件,而内部组件是其它要重用的组件。
包容是外部组件包含指向内部组件接口的指针.外部组件相对来说是内部组件的一个客户,它将使用内部组件的接口来实现它自己的接口.
在上一篇的基础上实现了组件CB对CA组件的包容.
阅读全文
摘要: 在上一篇中,介绍了怎么样用动态链接库去实现COM,但组件对我们来说仍是不透明的,我们需要知道实现组件DLL的位置,必须自己来加载组件的CreateInstance函数来获得组件的指针.在书中第一篇就曾经提到过:COM组件可以透明地在网络上(或本地)被重新分配位置,而不会影响本地客户程序.所以,由客户端来调用DLL并不是什么好主意.必须有一种更好的办法让组件的实现更透明,更灵活!
于是,就引入了类厂的概念.什么是类厂,类厂也是一个接口,它的职责是帮我们创造组件的对象.并返回给客户程序一个接口的指针.每个组件都必须有一个与之相关的类厂,这个类厂知道怎么样创建组件.当客户请求一个组件对象的实例时,实际上这个请求交给了类厂,由类厂创建组件实例,然后把实例指针交给客户程序。
阅读全文
摘要:1.COM中的HRESULT:
2.COM中的GUID:
3.组件在注册表中的结构:
4.ProgID和CLSID之间的转换 / CLSID和字符串的转换:
5.Dll的注册.
6.COM库函数
7.在组件中如果分配内存,在客户中怎么释放?
阅读全文
摘要: 上一篇文章里,在一个CPP文件中实现了组件IX,IY,及组件CA,以及在客户端对接口的查询,但其还不是一个COM,COM的许多特性还没有被展现出来.比如,用动态链接库实现,没有这个我就不能根据需要随意的加载和卸载组件,组件无法复用等功能。
以下这篇笔记将详细的介绍如何用动态链接库去实现COM组件。
阅读全文
摘要:(注明,这两篇都是转贴。文章不错,怕以后找不到。故转之)
COM——到底是什么?——COM标准的要点介绍,它被设计用来解决什么问题?
基本元素的定义——COM术语以及这些术语的含义。
使用和处理COM对象——如何创建、使用和销毁COM对象。
基本接口——描述IUnknown基本接口及其方法。
掌握串的处理——在COM代码中如何处理串。
应用COM技术——例子代码,举例说明本文所讨论的所有概念。
处理HRESULT——HRESULT类型描述,如何监测错误及成功代码。
阅读全文
摘要:走马观花看COM服务器——描述COM服务器的基本要求。
服务器生命其管理——描述COM服务器如何控制加载时间。
实现接口,从IUnknown开始——展示如何用C++类编写一个接口实现并描述IUnknown之方法的目的。
深入CoCreateInstance()——探究CoCreateInstance()的调用机理。
COM服务器的注册——描述完成服务器注册所需要的注册表入口。
创建COM对象——类工厂——描述创建客户端要使用的COM对象的过程。
一个定制接口的例子——例子代码示范了上述概念。
一个使用服务器的客户端——举例说明一个简单的客户端应用程序,用它来测试COM服务器。
其它内容——有关源代码和调试的注释。
阅读全文
摘要: 学习VC++时经常会遇到链接错误LNK2001,该错误非常讨厌,因为对于编程者来说,最好改的错误莫过于编译错误,而一般说来发生连接错误时,编译都已通过。产生连接错误的原因非常多,尤其LNK2001错误,常常使人不明其所以然。如果不深入地学习和理解VC++,要想改正连接错误LNK2001非常困难。
阅读全文
摘要: 这是今天在读《COM技术内幕》这本书时模拟COM而写的一段代码,包括了基本的接口(IX,IY), 组件的实现(CA),以及对组件的调用。
这段代码知识点涵盖了此书的前四章,还没有实现的是,把组件,接口放到动态链接库去实现。
这本书的第五章就讲到了动态链接库库对COM组件的封装。先在此把前面的代码总结,并保存下来。
阅读全文
浙公网安备 33010602011771号