• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >vc/mfc > GIT和Marshal?在线请教

GIT和Marshal?在线请教

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-04

佚名通过本文主要向大家介绍了marshal,marshal是什么意思,c marshal,alice marshal,field marshal等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: GIT和Marshal? 在线请教
描述:

看了关于IMarshal 和 GIT的介绍 有几个问题请教:
  我理解COM的特点就在于巧妙的把对象和接口分离开来 形成一种可复用的标准 而IMarshal接口实际上实现了对象的跨进程传递 我不明白的就是怎么有个GIT ? 这个GIT是哪里来的 ? 是哪里实现的? 没它在实现IMarshal接口的条件下一样不影响COM对象的访问啊 而且这个GIT怎么就可以保证传递的局部指针是有效的呢?
不明白 请高手指点 多谢


解决方案1:

刚刚看了些COM 说说我的理解 :
首先:GIT和Marshal的目的是一样的,都是要实现接口对象跨进程传递。
他们的不同在与使用的方法:Marshal是序列化接口对象,使用以下两个接口函数:
MarshalInterface()和UnmarshalInterface()(可以查看MSDN)。要求是必须实现IMarshal接口
Class Itr : public IMarshal .....
{ ........ }
GIT是全局接口表 在本套间可以将接口指针注册在GIT中 然后在套间外程外从GIT中散列接口指针,这就是所谓的FTM.它的好处就在于你可以不必关心你不需要的东西,而关注实现就行。

解决方案2:

IMarshal接口实际上实现了对象的跨进程传递--这句话应该说成imarshal实现了对象的接口的跨套间(apartment),git应该是一张表,这个在《com本质论中》应该描述的比较清楚,偶有点忘了。


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 请问CoMarshalInterface是根据什么来确定是否要为一个对象建立一个存根管理器
  • IMarshal
  • 请教专家被包容和被聚合时是否需要列集Marshal的问题
  • 是否可以通过CoMarshalInterThreadInterfaceInStream获得从另外一个线程产生的接口?
  • CoMarshalInterThreadInterfaceInStream传递一个特殊的IDispatch
  • 跨套间marshal组件指针,用其返回其他组件对像出错!
  • 跨套间marshal来的对像指针查地址不为空,但是
  • 有关CoGetInterfaceAndReleaseStreamunmarshal的问题
  • CoMarshalInterThreadInterfaceInStream只能用于实现了IDispatch的组件?
  • 手工Marshal不成功,函数调用hang住了请帮我看看

相关文章

  • 2017-06-05 在线等待,如何在主进程中结束另一个进程,
  • 2017-06-05 mfc下开始一个线程后,怎么能得到这个线程的句柄??????????
  • 2017-06-04 紧急求教关于ATL的三个问题!!!!!whocantellmethereson?!!
  • 2017-06-05 如何动态装载DLL的导出类?
  • 2017-06-04 求InsideCOM+BaseServices中文电子版
  • 2017-06-05 如何用windbg+vs2008检测并定位服务内存泄露
  • 2017-06-05 一个比较基本的问题
  • 2017-06-05 怎么把activex的属性显示出来
  • 2017-06-04 帮看下什么问题
  • 2017-06-04 VC如何调用COM组件啊?据说有几种方式,都是什么?

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 跨线程调用IHTMLWindow2接口问题
    • 我在一个atldll重要将收到的字符窜保存成txt文件,该怎样做?刚学atl请大家关照。
    • dll里面的类问题?
    • 菜鸟求救,如何封装控件,急,在线等!解决立刻给分!
    • vc加载指定版本flash控件
    • dll中怎样创建窗口
    • NND,懂了COM原理,想弄个IE控件玩玩都没起来,气死
    • flashget的flash自动感知功能是如何实现的呢?
    • VC中关于线程中创建对话框的问题
    • 如何获取任务管理器中的进程信息????????

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有