最近一直在学习Delphi,但手头上的资料很少有关于COM技术的,所以对COM一点也不了解,在组件栏也只有一个控件,实在搞不清楚怎么来使用它,它主要应用于什么方面?请知道的朋友指点一下,如果有相关的例子也分享一下。谢谢了先!

解决方案 »

  1.   

    以前搞过一段时间的COM+,现好久没用了!
      

  2.   

    你可以看看《delphi 的com原理》 等等书
    www.vclxx.org上有许多Vcl的代码可以研究,虽然版本低,但理论是一样的。最大的好处是直接,实在
      

  3.   

    要深入了解 COM 的话,建议步骤:1、忘记跟 Delphi VCL/CLX 相关的东西;
    2、拿一本《COM本质论》[ISBN: 7-5083-0611-2] 啃;
    3、用 C++ 或者 Delphi(仅)调用 Windows API 调用一个 COM 对象;
    4、用 C++ 或者 Delphi(仅)调用 Windows API 实现一个 COM 对象;
    5、回头看看 Delphi VCL 对 COM 的封装。如果真能理解 COM 的本质,那恭喜你,在 Windows 平台上,你无敌了。
    你会发现,MS 做的东西太强大了,而你通过 COM(和消息)几乎什么都能控制。
      

  4.   

    COM/DCOM/COM+都是过时的东西,不用太费心了。
    本质就是通过一个标准接口为其他程序提供服务,但是ms的接口设计太笨拙,性能低下,已经回天无力了。
    “通过 COM(和消息)几乎什么都能控制”这句话就表明你没有理解COM的本质。:)
    COM并不能超越系统APIs而存在,它只是对某些功能做的一个提供标准接口的封装。
    尽管它的接口极力模仿面向对象方式,但可惜并不是真正的面向对象方式。
      

  5.   

    “COM/DCOM/COM+都是过时的东西”
    这句话说得有点过吧,谁说COM已经过时了?
      

  6.   

    API 是 Windows 常见三种控制方式(API/消息/接口)中最容易掌握的,所以懂了
    COM(和消息),那 API 也不成问题。至于
    “COM并不能超越系统APIs而存在,它只是对某些功能做的一个提供标准接口的封装。
    尽管它的接口极力模仿面向对象方式,但可惜并不是真正的面向对象方式。”
    这两句话不敢苟同。建议看看 Charlie Kindel 在《COM本质论》写的序言。还有
    COM 强调的是 COP 而不是 OOP 。OOP 有优点,有缺点。在大型工程开发和产品升级
    更替中 OOP 的问题更是明显。Charlie Kindel 序明确指出了 COP 和 OOP 的区别。
      

  7.   

    牛呆呆你就不要不懂装懂了。
    APIs和消息机制是Windows提供的最基本的服务层,
    而COM是更高层次的抽象。
    “通过 COM(和消息)几乎什么都能控制”根本就是胡说八道,
    你用COM动态装载一个设备驱动看看?
    还不是要使用APIs?
    “COM 强调的是 COP 而不是 OOP 。OOP 有优点,有缺点。在大型工程开发和产品升级更替中 OOP 的问题更是明显”?
    明显在哪里?
    既然如此,为什么ms还是在.net framework中用纯面向对象的机制取代了基于函数的APIs/Messages/COM这些东西?
      

  8.   

    呵,争起来了。
    想要资料给我发邮件。
    [email protected]
      

  9.   

    我可没有说不用 API, 我只是就掌握难度而言,
    COM 接口和消息比 API 要花更多精力来学习。请平心静气地理解了别人的观点再来反驳,否则
    交流上会有很大困难,DelphiGuy 你说是不是?COM 是 1993 年首发的,至今已 12 年了。
    由 COM 支持的 MS 技术不断升级,依然被广泛使用。至于 .net framework 能不能取代 Win32 的位置,
    我们就不要讨论了。DelphiGuy 是个 .net 迷还是个 Delphi 迷?
      

  10.   

    如果我的语气冒犯了你,那么我道歉。
    不过COM这种东西连ms都承认要“淡出”,
    你再继续吹捧它就没什么意思了。
    “依然被广泛使用”那只是因为推倒重来的代价太大。
    我既不是.net迷也不是Delphi迷,
    我只是喜欢Delphi,
    认为它能够代表开发工具的发展方向和技术进步。
    至于我个人,
    还工作在wordpad、vi+cc的状态。:)
      

  11.   

    Delphi 是好,我从1.0 用到现在 2005。但是现在
    好多问题解决不了,或者说即使可以解决,Borland 
    目前也没有声称要解决它。典型的有:
      纯 unicode 的 Win32 VCL 就是一个重要的需求。
      还有就是 VCL 和非 VCL 的窗口进行互动时出现的问题。你可能会问,用 .net VCL 不就 OK 了么?
    但是用 .net 的话,我还用 VCL 干什么?
    VCL 套 .net Framework 不是增加出问题的几率嘛?另一方面 .net 的适用范围是有限的。我想,Abobe 
    是不会把它的 PhotoShop 移植到 .net 上的吧。
    暴雪开发 WOW 会用 .net 而不用 Win32 么?上面两个方面说明了一个问题,个人感觉上,现在的
    Delphi 有点低不成高不就了。(我不是想伤害大家对 Delphi 的感情,而是觉得 
     Borland 实在不争气,当年丢了数据库,现在丢了
     快速开发工具。我工作用的 Delphi 还是正版的呢!)最后,我认为 pascal 是最优美的编程语言,这个跟 
    VCL 是两件事。
      

  12.   

    啊,看来COM还是一门比较高深的技术!