COM与基于组件技术的开发和应用模式(一)

原创 2004年08月29日 22:37:00


从一个小例子开始,我们在上网浏览网页的时候经常需要看到一些多媒体的信息,
比如一端小录象,那么是不是在包括IE在内的浏览器会给自己加上一个多媒体播
放功能呢?答案显然是否定的。但显然我们也看到了听到了那些我们所需要的内容。
大家一定会说,这是因为我们的系统中有像Media player,RealOne Player这样
的播放软件,浏览器在需要它的时候会自动调用它。OK,有了这样的亲身感受,在
接下来的学习COM的技术中你就会非常的轻松。

但是到这还得向您补充一点关于服务器与客户端的知识,因为在后面的内容中经
常涉及到。就像“文化”一词的解释,有他狭义与广义两方面的解释,狭义的可能
就是上小学甚至初中时老师说的科学文化知识,文化水品等等,总之就是一个人
掌握的知识;那现在呢,换一个角度、说民族文化,企业文化,甚至饮食文化等等
等等,这些都是文化。那关于服务器与客户端呢?前面我们学习数据库的时候有
sqlserver服务器,学习ASP的时候有IIS服务器,这些就可以称为我们所理解的
狭义的服务器,而像涉及到数据库的应用程序,浏览器这些就是客户端,那广义的
呢,我们可以说,凡是调用或使用其他程序,组件,甚至更微小的程序单位的程序
就是客户端,而被掉用的一方就是服务器。这样的话服务器与客户端的定义就不是
绝对的了,在不同的功能调用关系中他们之间的位置可以完全转化。

?

那么到底什么是COM呢?我们不妨从上面的例子中进行分析,首先正在使用的一个应
用程序(IE)需要某种功能(上面是播放录象),而它自己却不具备,那么我们解决
问题的方法显然是从新开发下个版本,使它实现这样的功能,这对我们程序员听起来
显然不是什么高兴的事情,那有别的方法吗?对了,就像上面的例子中看到的那样,
它可以使用别的实现了这一功能的应用程序(Media player,RealOne Player),
这样的话根据上一段的解释,IE就应该是客户端,而多媒体播放器就应是服务器。现在
又有新问题出现了,那IE怎么找到RealOne Player呢?别忘了windows操作系统的核
心文件system.dat(注册表),我们每一个装在windows上的程序都是必须在注册表中
注册过的,然后各种程序可以根据注册表方便的找到它所需要的哪个。

OK,那现在我们就来说COM吧,在上面的例子中,我们遇到了这样的麻烦,我们希望可以
像使用自己应用程序功能那样的使用别的应用程序的功能,可是自己却不知道该怎么做,
这样的话COM出来了,它对我说:小伙子,你应该这样做,找一个地方,专门注册你的程
序,而且你的这些程序必须是实现了某种接口的,在那地方你要详细说明他们的功能,标
明他们的地址,这样在需要的时候可以很方便的找到他们。这就是COM,他告诉我的就这
么多。所以说COM是只是标准,是告诉的一个实现准则,他是指导思想,是一个蓝皮书,
他完全是理论上的,而不是一个实现了的东西。

那上面的的注册表以及那些程序呢?对,他们就是COM技术的一种实现,而我们看到的结果,
就是这种实现技术的一种表现形式。


?

?

COM组件技术在Linux C++下的使用例子

COM的接口 看了Window下的COM组件知识后,就想在Linux下 模仿写一个Com相关的例子,这几天刚好有时间,就写了一个小例子,现在把它分享出来,希望各位能提出宝贵的意见...
  • u011641755
  • u011641755
  • 2016年08月28日 23:48
  • 1660

推荐几款COM组件开发的入门书籍

推荐几本个人读过的比较不错的COM组件相关的书籍,按我的阅读感受排名如下: 1,《Visual C++实践与提高-COM和COM+篇》         这本书我放在第一位,倒不是它有多么出色,但...
  • ghevinn
  • ghevinn
  • 2014年01月25日 17:37
  • 6606

COM组件入门(一)

最近需要用到COM组件的知识,看了看COM编程指南,感觉还不错,把我的学习心得记录下来。这是我写...
  • davidsu33
  • davidsu33
  • 2014年08月13日 17:08
  • 1175

COM组件开发(六)——使用ATL开发COM组件

使用ATL开发COM组件           使用ATL开发COM组件之前,要对几个重要的类进行说明:           CComModule           这是ATL的中心模块类,它的...
  • q5806622
  • q5806622
  • 2015年02月27日 10:10
  • 2229

使用VC6.0开发COM组件 - 傻瓜式,不讲理论,只讲实例

原文地址:http://www.cnblogs.com/lin1270/archive/2013/04/02/2997042.html 1.创建一个ATL COM AppWizard...
  • qq799238350
  • qq799238350
  • 2016年10月08日 16:28
  • 271

COM组件设计与应用(四)——简单调用组件

目录(?)[-] 一、前言二、组件的启动和释放三、内存分配和释放四、参数传递方向五、示例程序六、小结 本文摘自:http://www.vckbase.net/index.php/wv/1211 ...
  • jiangqin115
  • jiangqin115
  • 2015年01月29日 21:52
  • 1086

COM技术内幕学习笔记---第八章---组件复用:包容和聚合

COM 不支持实现继承的原因在于这种继承方式将 使得一个对象的实现同另外一个对象的实现紧紧地关联起来。 在这种情况下,当基类的实现被修改之后,派生类将无法正常运行而必须被修改。对于一个中等规模的C+...
  • shb8845369
  • shb8845369
  • 2014年04月08日 15:06
  • 1312

C#开发COM组件

原文:http://blog.csdn.net/soudog/article/details/1593346 1.    概述        Microsoft在解决和以往的COM和SDK开发...
  • jiftlixu
  • jiftlixu
  • 2016年03月09日 14:20
  • 3097

C#编写COM组件

C#编写COM组件  软件:Microsoft VisualStudio 2010 1、新建一个类库项目 2、将Class1.cs改为我们想要的名字(例如:MyClass.cs)...
  • kingmax54212008
  • kingmax54212008
  • 2017年06月22日 14:44
  • 1991

COM组件开发(一)—— 对象与接口

一.前言        在COM规范中,最基本的两个要素就是对象与接口,因为COM就是由这两者来共同实现的。COM对象在组件中是被封装起来的,客户代码只能通过接口来访问COM对象并享受其,由于客户与C...
  • q5806622
  • q5806622
  • 2015年01月19日 23:08
  • 3541
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:COM与基于组件技术的开发和应用模式(一)
举报原因:
原因补充:

(最多只允许输入30个字)