com和ole的关系,正如微积分与物理的关系;
当时牛顿发明微积分正是专门用来解决物理学中的机械以及动力学方面的问题,
后来微积分被应用到很多方面;
而com当时也正是被用来解决ole方面的问题,后来才被用于解决很多其他方面的问题;
当他编写那本书是,com只有一个应用就是ole;
这本书的主要目的就是讲com同ole分开并重点讲解com的基本概念;
单个应用程序VS组件应用程序
COM:组件对象模型;
使用组件的有点:
-
方便定制
com是一个说明如何建立可动态互变组件的规范;
com组件应当满足的限制:
-
与语言无关;
-
可以使用二进制发布;
-
版本控制上保证对老版本的兼容;
com不是什么?
-
com不是计算机语言,com是用来说明如何编写组建的,
-
com与dll,com是使用了dll来给组件提供动态链接的能力;
-
com也不是像win32 api的一个函数集;
-
com也不是一个类似于MFC一样的C++类库;
com库:
com方法:
同结构化编程和面向对象的编程一样,com也是一种组织软件的方法;
DcOM:分布式com;
对象连接和嵌入的microsoft版本被称为OLE;
OLE的第一个版本使用DDE(动态数据交换);
对于com来说,接口就是包含一个函数指针数组的内存结构;
为使之成为一个com接口,他们必须继承一个成为iunkown的接口;
巧合!!1
第五章
使用vc++开发com
对于com的应用开发来说,建立一套标准的,能够不断发展的类库是非常有意义的。
microsoft vc++建立了建立了两个能够满足这种要求的类库:MFC ALT;
MFC:不仅可以用于com应用,更是开发各种应用的基本类库,而ALT主要侧重于com的开发;
over
com原理与应用:26页
47;
生存期控制和接口查询;
Iunkown接口通过引入“引用计数”的方法,可以有效的控制对象的生存期;
com的接口定义语言:IDL
目前的类库封装有一点像是com的封装规范;
第二章:
主要介绍了com对象和接口方面的知识,重点讨论了组件程序和客户程序之间的通信规范。
第三章:
com的实现与操作系统密切相关;
因为com最初源于windows平台,所以com实现细节很多部分直接用到了windows系统的一些特性,
比如系统注册表,动态链接库等;
实际上com组件对象模型是一个平台无关的;
windows上使用的com标准只是com的一个实现;
本章在上一章的基础上,重点讲
-
com对象的管理;
-
com对象的创建过程
-
com库的一些功能;
进程内组件:动态链接库;
进程外组件:exe程序;
_stdcall调用习惯;
_cdecl调用习惯;
58:
windows下不同进程之间通信的方法:
-
动态数据交换(DDE),命名管道(named pipe),
-
共享内存等;
-
com采用了本地过程调用(local procedure cal)LPC和远过程调用(RPC)用于在本地和不同机器的不同进程之间进行调用;
LPC和RPC的机理相同,只不过RPC要通过网络传递信息。
windows的注册表是一个操作系统级的信息仓库;
windows提供了一个用于注册进程内组件的实用工具RegSve32.exe
《com本质论》
由潘爱民翻译;
这本书并不适合新手,目的是帮助你在有一定的基础之后,帮助你提升对com思想的理解;
应当学习《com技术内幕》,《com原理与应用》