ATL 调度(Marshaling)

调度(Marshaling): 进程和计算机之间进行函数参数和返回值传输的一个过程。

核心: proxy / stub (代理 / 存根)

当需要实现调度时,COM在客户程序进程地址空间创建一个proxy对象, 在组件的地址空间创建一个stub对象。

客户程序与proxy交互,就像客户机和组件之间存在直接连接一样

组件与stub交互,就像组件与客户程序之间存在之间连接一样

这种方式使位置变得透明

如图所示:

client                             component

|                                      |

|                                      |

Proxy   <---------------->Stub

proxy和stub之间的交互,同一计算机使用LPC,在分布式网络使用RPC

ATL 调度(Marshaling)

时间: 2024-11-05 14:39:26

ATL 调度(Marshaling)的相关文章

ATL基础

ATL: Active Template Library(活动模板库) 一种开发框架,通过它可以快速建立基于COM的组件 基本特征: 1.对低级别COM功能的内置式支持:IUnknown, 类工厂, self-registration 2.支持IDL(interface definition language) 3.对自定义Vtable接口的调度支持(marshaling) 4.对自动化(IDispatch)和双向接口的支持(dual interfaces) 5.用于开发ActiveX和OLE控

ATL的特点与基本使用方法

ATL(Active Template Library)活动模板库 是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序.通过活动模板库,可以建立COM组件,然后通过ASP页面中的脚本对COM对象进行调用.这种COM组件可以包含属性页.对话框等等控件. ATL简介 一. 什么是ATL 自从1993年Microsoft首次公布了COM技术以后,Windows平台上的开发模式发生了巨大的变化,以COM为基础的一系列软件组件化技术将Windows编程带入了组件化时代.广大的开发

【转载】ATL问题集

原文:http://blog.csdn.net/fengrx/article/details/4171629 这些问题是以前在csdn当版主是一些朋友整理的,今天找到了,贴到这里来! #1 如何使用控件不能改变大小? 答:有时我们需要创建不可改变大小的控件,像那种在运行时没有界面的控件(例:时间控件,SysInfo 等),想做到这种功能的话,请把以下代码加入到控件类的构造函数: m_bAutoSize = TRUE; SIZEL size = {24, 24}; AtlPixelToHiMetr

atl控件发布打包&lt;转&gt;

http://www.cnblogs.com/gengaixue/archive/2010/08/13/1799112.html ActiveX打包与发布 在VS2005或VS2008安装后发现路径**VC7\Common7\Tools\Bin\下有许多小工具,我对带有Cert的文件比较感兴趣.经过研究,发现是有关证书和签名的,当然,该证书未被证书认证机构认可.下面列出这些工具和我的使用心得.1.Makecert.exe ---证书创建工具2.Cert2Spc.exe ---发行者证书测试工具3

python的sched模块--延时调度

我们经常需要定时的执行某个任务,在Linux下我们有强大的crontab,但是在Python这个粒度(定时执行函数),如何处理呢?除了第三方的模块外,标准库为我们提供了sched模块和Timer类. 先说sched模块,准确的说,它是一个调度(延时处理机制),每次想要定时执行某任务都必须写入一个调度.使用步骤如下:(1)生成调度器:s = sched.scheduler(time.time,time.sleep)第一个参数是一个可以返回时间戳的函数,第二个参数可以在定时未到达之前阻塞.可以说sc

Linux进程管理与调度-之-目录导航【转】

转自:http://blog.csdn.net/gatieme/article/details/51456569 版权声明:本文为博主原创文章 && 转载请著名出处 @ http://blog.csdn.net/gatieme 目录(?)[-] 项目链接 进程的描述 进程的创建 进程的加载与运行 进程的退出 进程的调度 调度普通进程-完全公平调度器CFS 日期 内核版本 架构 作者 GitHub CSDN 2016-07-21 Linux-4.6 X86 & arm gatieme

L2-014. 列车调度

火车站的列车调度铁轨的结构如下图所示. Figure 两端分别是一条入口(Entrance)轨道和一条出口(Exit)轨道,它们之间有N条平行的轨道.每趟列车从入口可以选择任意一条轨道进入,最后从出口离开.在图中有9趟列车,在入口处按照{8,4,2,5,3,9,1,6,7}的顺序排队等待进入.如果要求它们必须按序号递减的顺序从出口离开,则至少需要多少条平行铁轨用于调度? 输入格式: 输入第一行给出一个整数N (2 <= N <= 105),下一行给出从1到N的整数序号的一个重排列.数字间以空格

分布式调度QUARTZ+SPRING

使用SPRING的定时任务框架,如果是在分布式的环境下,由于有多台节点,会产生相同的任务,会被多个节点执行,这时需引入分布式的QUARTZ. 触发器:存放时间排程 任务:蔟业务代码 排程器:负责调度,即在指定的时间执行对应的任务 如果是分布式QUARTZ,则各个节点会上报任务,存到数据库中,执行时会从数据库中取出触发器来执行,如果触发器的名称和执行时间相同,则只有一个节点去执行此任务. 如果此节点执行失败,则此任务则会被分派到另一节点执行. quartz.properties # =======

电梯调度——调研报告

需求调研报告 立项背景: 石家庄铁道大学基础教学大楼是一座18层的建筑,其内部配备4部电梯,学生和老师使用电梯的高峰时段相对集中于每次上课/下课的时段,故电梯的使用具有突发性和荷载量大的特点,故设计合理的电梯调度算法,避免出现 “公共汽车”,即把电梯作为总线,它从底部到顶部,停在每一层楼,打开门,让人们进出,然后把门关上,继续前进.之后到达顶层,它会下去.可以极大的提高电梯的工作效率. 石家庄铁道大学基础教学楼的电梯配置如下: 电梯数量:4部 电梯的最大容量为15人 电梯经过每楼层的时间:3秒