没有合适的资源?快使用搜索试试~ 我知道了~
delphi的com机制
需积分: 9 16 下载量 192 浏览量
2008-11-23
10:10:52
上传
评论
收藏 68KB DOC 举报
温馨提示
试读
30页
⊙ 第一章 概述 COM 是什么 COM 对象与接口 COM 进程模型 COM 可重用性 ⊙ 第二章 COM 对象模型 全局唯一标识符 GUID COM 对象 COM 接口 接口描述语言 IDL IUnknown 接口 COM 对象的接口原则 ⊙ 第三章 COM 的实现 COM 组件注册信息 注册 COM 组件 类厂和 DllGetObjectClass 函数 CoGetClassObject 函数 CoCreateInstance / CoCreateInstanceEx 函数 COM 库的初始化 COM 库的内存管理 组件程序的装载和卸载 COM 库常用函数 HRESULT 类型 ⊙ 第四章 COM 特性 可重用性:包容和聚合 进程透明性 (待学) 安全性 (待学) 多线程特性 (待学) ⊙ 第五章 用 Visual C++ 开发 COM 应用 Win32 SDK 提供的一些头文件的说明 与 COM 接口有关的一些宏
资源推荐
资源详情
资源评论
《原理与应用》学习笔记 第一部分 原理
开始时间:
最后修改:
本文排版格式为:
正文由窗口自动换行;所有代码以 字符为边界;中英文字符以空格符分隔。
!本文内容基本上是从《原理与应用》书中摘录,版权由作者潘爱民所有,请勿在公共媒体使用"
目录
######################################################
#########################
$第一章 概述
是什么
对象与接口
进程模型
可重用性
$第二章 对象模型
全局唯一标识符 %&'(
对象
接口
接口描述语言 '()
'&**+*接口
对象的接口原则
$第三章 的实现
组件注册信息
注册 组件
类厂和 (%,函数
%,函数
-'**-'**./函数
库的初始化
库的内存管理
组件程序的装载和卸载
库常用函数
01.2&)3类型
$第四章 特性
可重用性:包容和聚合
进程透明性 !待学"
安全性 !待学"
多线程特性 !待学"
$第五章 用 4566开发 应用
7*2(8提供的一些头文件的说明
与 接口有关的一些宏
######################################################
#########################
正 文
######################################################
#########################
$第一章 概述
######################################################
#########################
是什么
是由 -9提出的组件标准,它不仅定义了组件程序之间进行交互的标准,并且也提供了组
件程序运行所需的环境。在 标准中,一个组件程序也被称为一个模块,它可以是一个动态链接库,
被称为进程内组件!*-**";也可以是一个可执行程序!即 .:.程序",被称作进程外
组件!59-**"。一个组件程序可以包含一个或多个组件对象,因为 是以对
象为基本单元的模型,所以在程序与程序之间进行通信时,通信的双方应该是组件对象,也叫做
对象,而组件程序!或称作 程序"是提供 对象的代码载体。
对象不同于一般面向对象语言!如 66语言"中的对象概念,对象是建立在二进制可执行代
码级的基础上,而 66等语言中的对象是建立在源代码级基础上的,因此 对象是语言无关的。
这一特性使用不同编程语言开发的组件对象进行交互成为可能。
对象与接口
类似于 66中对象的概念,对象是某个类!"的一个实例;而类则是一组相关的数据和功能组合在
一起的一个定义。使用对象的应用!或另一个对象"称为客户,有时也称为对象的用户。
接口是一组逻辑上相关的函数集合,其函数也被称为接口成员函数。按照习惯,接口名常是以“';为前缀。
对象通过接口成员函数为客户提供各种形式的服务。
在 模型中,对象本身对于客户来说是不可见的,客户请求服务时,只能通过接口进行。每一个接
口都由一个 位的全局唯一标识符!%&'(,%&*<5'*=-"来标识。客户通过 %&'(来
获得接口的指针,再通过接口指针,客户就可以调用其相应的成员函数。
与接口类似,每个组件也用一个 位 %&'(来标识,称为 )2'(!*9-,类标识符或类
'(",用 )2'(标识对象可以保证!概率意义上"在全球范围内的唯一性。实际上,客户成功地创建对象后,
它得到的是一个指向对象某个接口的指针,因为 对象至少实现一个接口!没有接口的 对象是
没有意义的",所以客户就可以调用该接口提供的所有服务。根据 规范,一个 对象如果实现
了多个接口,则可以从某个接口得到该对象的任意其他接口。从这个过程我们也可以看出,客户与
对象只通过接口打交道,对象对于客户来说只是一组接口。
进程模型
所提供的服务组件对象在实现时有两种进程模型:进程内对象和进程外对象。如果是进程内对象,
则它在客户进程空间中运行;如果是进程外对象,则它运行在同机器上的另一个进程空间或者在远程机
器的空间。
进程内服务程序:
服务程序被加载到客户的进程空间,在 7*+环境下,通常服务程序的代码以动态连接库!())"的形
式实现。
本地服务程序:
服务程序与客户程序运行在同一台机器上,服务程序是一个独立的应用程序,通常它是一个 .:.文件。
远程服务程序:
服务程序运行在与客户不同的机器上,它既可以是一个 ())模块,也可以是一个 .:.文件。如果远程
服务程序是以 ())形式实现的话,则远程机器会创建一个代理进程。
虽然 对象有不同的进程模型,但这种区别对于客户程序来说是透明的,因此客户程序在使用组件
对象时可以不管这种区别的存在,只要遵照 规范即可。然而,在实现 对象时,还是应该慎
重选择进程模型。进程内模型的优点是效率高,但组件不稳定会引起客户进程崩溃,因此组件可能会危
及客户;!注:这里有点问题,如果组件不稳定,进程外模型也同样会出问题,可能是因为进
程内组件和客户同处一个地址空间,出现冲突的可能性比较大?"进程外模型的优点是稳定性好,组件进
程不会危及客户程序,一个组件进程可以为多个客户进程提供服务,但进程外组件开销大,而且调用效
率相对低一点。
可重用性
由于 标准是建立在二进制代码级的,因此 对象的可重用性与一般的面向对象语言如 66
中对象的重用过程不同。对于 对象的客户程序来说,它只是通过接口使用对象提供的服务,它并
不知道对象内部的实现过程,因此,组件对象的重用性可建立在组件对象的行为方式上,而不是具体实
现上,这是建立重用的关键。用两种机制实现对象的重用。我们假定有两个 对象,对象 希
望能重用对象 的功能,我们把对象 称为外部对象,对象 称为内部对象。
剩余29页未读,继续阅读
资源评论
森林34
- 粉丝: 0
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 解决未在远程桌面会话中捕获到鼠标,vmguest.iso软件分享给大家
- JSP+SQL基于WEB的开放性实验管理系统设计与实现(源代码+论文+开题报告+中英文献+答辩PPT).rar
- log4net配置文件!!!!!!!!!!!!!!!!!
- 河南统计面板数据集(2010-2022年).xlsx
- OrcaleDBHelper帮助类!!!!!!!!!!!!
- log4net帮助类,用来写日志!!!!!!!!!!!!!
- Windows10时间同步源
- 信呼OA系统2.1.7版源码
- 3122080306 邹子轩 实验报告二.docx
- 基于STM32 NUCLEO板设计彩色LED照明灯(纯cubeMX开发)(大赛作品,文档完整,可直接运行)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功