通过COM技术实现Windows外壳编程之思考?

yuyipj 2002-09-19 10:19:12
为什么要用COM?COM真正意义上给我们带来的是一种复用技术的思想。
先前学习COM是以《COM本质论》为基础的学着怎样去构造com,之后更加流于细节。云里雾里不
知所云。今天通过代码实现,让我从着一个相反的角度来学习之,即使用一些系统自带的com接口时。恍然间开朗起来。
复用是一切的根源,复用是以标准为依托的,为了复用微软定义了他的标准,这些包括了接口定义等方面。其它开发商也在
不同的平台,不同的应用中进行了相应的标准。
复用确实给我们带来了不少好处,随复用而产生的标准太多而不能分门别类的时候也是一种累赘,当我们用com写出众多接口而用户是否应接不暇呢?我们不可
能去学习每一个com接口,要学也只是我们将要用到的。那么怎样才能说我们真正的掌握了com呢?
当我们说能够掌握com时,我们是要掌握以下几点或更多的
1.要能构造com,代码中基本的com定义实现。
2.要能直接使用com,代码中基本的com应用。
3.在设计自己的系统而需要扩展时要能规化你的com接口
希望有真正在用com而深感其实际用途的人能给我给谈谈你对com的意见,看法
和运用的感受。
...全文
44 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
shadou 2002-09-27
  • 打赏
  • 举报
回复
GZ
matboy 2002-09-27
  • 打赏
  • 举报
回复
是啊,我感觉逻辑层的剥离是最困难的了,这需要经验
jatom 2002-09-27
  • 打赏
  • 举报
回复
啊,这种讨论真好。我觉得COM的强大之处在于它用接口把实现方法跟调用程序相分离,这是很重要的。这样不但只COM组件可以重用,连调用程序只要设计好也能达到代码重用的功能(只要插入实现相同接口但实现功能不同的COM组件,就能使得程序实现不同的功能)
xdspower 2002-09-24
  • 打赏
  • 举报
回复
gz
ketao_78 2002-09-24
  • 打赏
  • 举报
回复
对对,com是一个值得学习的东西
喝醉的咖啡 2002-09-23
  • 打赏
  • 举报
回复
呵呵,原来是讨论COM这个“协议”和“接口”方法的oop意义。
我还以为是说COM来做Shell的一些功能呢(比如木马) x]

Windows 和 IE 里面那么多Shell接口和扩展,随便找个地方插入木马还真是防不胜防-- 运行一个程序时、鼠标移动到某个文件图标上、打开浏览器/资源管理器、桌面或者资源管理器中按鼠标右键... 太多了

搂主的意思我明白了,楼上说得好,对于我们这些程序原来说COM不就是“编程规范”么。oop的使用可能很复杂,但接口正是为了解决这样的1对n的问题,防止因为大家的对oop或者提供的功能理解不同和使用方式不同造成的混乱。了解了COM和使用COM时需要注意的基本技巧,就好比熟悉了VC,只是一个很有skills的coder,一个刀法熟练的厨师。
做一个系统的时候,对所使用的技术路线是否熟悉,所需要了解的函数和COM接口以前是否做过固然都有很大的影响。但是如果说程序员仅仅是记住了一大堆API,和COM,那还不如用电脑查询MSDN或者Google呢。 呵呵,反正我是学会了有选择的忘记,知道思路就行了。真记不起来的时候再翻书上网Search或者请教大家咯 x]

因此 <Inside COM> 和 <Inside ATL> 我还是很喜欢的。至少在实际应用COM和ATL的过程中遇到的一些线程问题和MFC支持方面的问题我知道如何解决,以及为什么。至于该用什么接口,没做过也许不知道,做的时候查一下MSDN,甚至就用ObjectViewer看看也许就够了-- 组件不就是开发人员做出来给人调用的么?接口不就是开放出来给别人用的么?总不至于弄得云遮雾绕的吧,呵呵。
PCController 2002-09-23
  • 打赏
  • 举报
回复
影响项目开发周期其中的一个因素就是软件组件的可复用性问题,直接影响到了软件的结构定义和逻辑关系,这方面做的好,组件复用率高,软件维护和开发周期就短,反之,会变得复杂漫长,COM就能够很好的解决这个问题,掌握好COM思想,作软件就和搭积木一样简单明了
roy_hu 2002-09-22
  • 打赏
  • 举报
回复
正在看《inside com》,学习
runrunrun 2002-09-22
  • 打赏
  • 举报
回复
我觉得作为一种技术,com本身并没有什么难懂的。关键之处在于你怎么去使用用它,如何划分复用的界限,如何定义接口。简言之,就是把你的软件中哪些功能分离为可复用的组件,其接口又如何定义。
就象win2000是用C语言写的,并不意味着只要你会了C语言,就能写一个操作系统。
classfactory 2002-09-22
  • 打赏
  • 举报
回复
Interface, interface, still interface...
zhangjl716 2002-09-21
  • 打赏
  • 举报
回复

软件开发效率和软件质量一直是软件技术关心的问题

COM/DCOM也不例外,它能很好的支持软件复用,更重要的目的是为了实现软件的互操作,解决面向对象技术产生的“对象孤岛”问题。

开放特性是软件发展的一大趋势。要实现不用软件开发商开发的软件,在不同平台上能“即插即用”,实现互操作。无疑组件及相关技术必将是解决这一问题的主要突破口。
lwg7603 2002-09-20
  • 打赏
  • 举报
回复
知道shell接口编程的思路,还没有实践过^_^!
禽兽v5 2002-09-20
  • 打赏
  • 举报
回复
Mark^_^
linghuye 2002-09-19
  • 打赏
  • 举报
回复
COM规范了团队编程之间自觉的合作,明确了任务职责范围,
还可以学到一些精妙的设计模式。

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧