摘要: http://bbs.ecjtu.org/thread-24129-1-1.html咱们用 ATL 写了一个简单的 COM 组件,之所以说简单,是因为在组件中,只实现了一个自定义(custom)的接口 IFun。当然如果想偷懒的话,我们可以把 200 个函数都加到这一个接口中, 果真如此的话,恐怕就没有人喜欢使用我们这个组件了。一个组件既然可以提供多个接口,那么我们在设计的时候,就应该按照函数的功能进行分类,把不同功能分 类的函数用多个接口表现出来。这样可以有如下的一些好处: 1、一个接口中的函数个数有限、功能集中,使用者容易学习、记忆和调用。一个接口到底提供多少个函数合适那?答案是:如果你是 阅读全文
posted @ 2011-07-18 10:56 子超 阅读(752) 评论(0) 推荐(0) 编辑
摘要: http://xjchilli.blog.163.com/blog/static/453477392009111095940304/ATL内部的类厂创建 http://www.ecjtu.org/forum/read.php?tid-24099.html用COM SDK写的第一个Com组件 http://www.ecjtu.org/forum/read.php?tid-24098.html一个很有趣的c++程序http://www.ecjtu.org/forum/read.php?tid-24094.htmlCom组件包容的简单模拟实现http://www.ecjtu.org/forum/re 阅读全文
posted @ 2011-07-18 10:40 子超 阅读(732) 评论(0) 推荐(0) 编辑
摘要: http://bbs.ecjtu.org/thread-24247-1-1.html1、面向对象系统的三个最基本的特性 封装性、多态性、重用性。 2、COM特性的概述COM对象的封装特性是很彻底的,所有的对象状态信息必须通过接口才能访问;而COM的多态性完全通过接口体现出来,而且,COM分别在三个层次上体现了 多态性:接口成员函数、单个接口、一组接口(对象类别既implemented category)。而COM的重用性相对复杂。 3、重用性 所谓重用性是指,当一个程序单元能够对其他的程序单元提供功能服务时,尽可能地重用原先程序单元的代码,既可以在源代码一级重用,也可以在可执行代码一级重用。C 阅读全文
posted @ 2011-07-18 10:39 子超 阅读(457) 评论(0) 推荐(0) 编辑
摘要: 掌握C++对象模型底层知识的人都知道,C++利用虚函数的机制来实现运行期的多态。例如一个类申明如下:class A{public:A(){}~A(){}virtual void f1(){ printf("Founction f1 called"); virtual void f2(){ printf("Founction f2 called"); }virtual void f3(){ printf("Founction f3 called"); }private:int n;};A对 阅读全文
posted @ 2011-07-18 10:37 子超 阅读(625) 评论(0) 推荐(0) 编辑
摘要: 进程内组件的装载: 客户程序调用COM 库的 CoCreateInstance 或 CoGetClassObject 函数创建 COM 对象,在 CoGetClassObject 函数中,COM 库根据系统注册表中的信息,找到类标识符 CLSID 对应的组件程序(DLL 文件)的全路径,然后调用 LoadLibrary(实际上是 CoLoadLibrary)函数,并调用组件程序的 DllGetClassObject 引出函数。DllGetClassObject 函数创建相应的类厂对象,并返回类厂对象的 IClassFactory 接口。至此 CoGetClassObject 函数的任务完成,然 阅读全文
posted @ 2011-07-18 10:35 子超 阅读(2301) 评论(0) 推荐(0) 编辑