• VC++/MFC学习笔记(六)


     

    总在很多地方看到COM的相关的东西,但是一直以来对COM的理解只是局限于知道它的全称:Component Object Model。为此,专门读了一下《COM技术内幕》的第一章,力求先对COM有一个初步的了解,随着学习的深入,肯定会进一步对COM进行研究。

     

    COM是什么?

    COM是一个说明如何建立可动态互变组件的规范。它提供了为保证能够互操作,客户和组件应遵循的一些标准。

    COM规范就是一套为组件架构设置标准的文档。遵循COM规范编写的组件能够满足对组件构架的所有需求。

    COM组件是以Win32动态链接库(DLLs)或可执行文件(EXEs)的形式发布的可执行代码组成的。COM组件是动态链接的,必须还是封装的。

     

    COM不是什么?

    COM并不是一种计算机语言。

    COMDLL相比或相提并论也是不合适的。实际上COM是使用了DLL来给组件提供动态链接的能力。除了支持COM组件以外,在其他地方一般不会用到DLL

    COM不是像Win32 API那样的一个函数集。COM更主要的是一种编写能够按面向对象API形式提供服务的组件的方法。COM给开发人员提供的是一种开发与语言无关的组件库的方法,但COM本身没有提供任何实现。

     

    COM

    COM具有一个被称作是COM库(COM Library)的API,它提供的是对所有客户及组件都非常有用的组件管理服务。

     

    COM方法

    我们可以将COM作为一种编写程序的方法。

     

    COM使用DLL来提供可在运行时被替换掉的组件。COM借助于以下一些手段保证这些组件可以充分利用动态链接所带来的各种好处:

    提供了一个所有组件都应该遵守的标准。

    允许使用组件的多个不同版本,而且这一点对于用户而言几乎是透明的。

    使得可以按相同的方式来处理类似的组件。

    定义了一个与语言无关的架构。

    支持对远程组件的透明链接。

    参考文献:《COM技术内幕》  Rogerson.D  杨秀章译

  • 相关阅读:
    BZOJ4896 THUSC2016补退选(trie)
    BZOJ4892 Tjoi2017dna(后缀数组)
    BZOJ4890 Tjoi2017城市
    BZOJ4888 Tjoi2017异或和(树状数组)
    BZOJ4887 Tjoi2017可乐(动态规划+矩阵快速幂)
    BZOJ4883 棋盘上的守卫(环套树+最小生成树)
    BZOJ4881 线段游戏(二分图+树状数组/动态规划+线段树)
    BZOJ4878 挑战NP-Hard(dfs树)
    BZOJ5466 NOIP2018保卫王国(倍增+树形dp)
    BZOJ4873 Shoi2017寿司餐厅(最小割)
  • 原文地址:https://www.cnblogs.com/ainima/p/6332068.html
Copyright © 2020-2023  润新知