• 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 > COM组件IDL的问题

COM组件IDL的问题

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

佚名通过本文主要向大家介绍了com组件,com组件是什么,com组件下载,com组件注册,com组件编程等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: COM组件IDL的问题
描述:

我对组件不太了解,问个初级问题
我写一个IDL文件,编译之后分别生成客户端和服务器端。
那么客户端就能按照接口定义的格式 调用服务器端的应用对吗?
那假如 服务器端和客户端 即为客户端也为服务器端,两者相互调用,这样IDL文件应该怎么写?
换句话说,IDL是只描述了客户端调用服务器端的接口吗? 
如果系统里 有好多组件,每个组件即为服务器也为客户端 是不是我要定义很多个IDL?
是否我的理解有问题,请指出,谢谢。


解决方案1:

个人理解:
    我觉得并不时说IDL编译之后就生成了客户端和服务端。而只是提供了一个供外部使用的接口,其实组件内部也有聚合和包含并不一定要扩展到Client-Server的模型。还有连接点的技术也是支持了服务端对客户端的回调功能的。
    至于IDL应该是要在每一个组件服务端都有定义自己的接口。这个对应于组件服务端所能提供的服务功能来说应该也还是很简单的。如果是太简单或者可以整合到内部使用的,应该就没有必要使用组件来完成了。个人意见不知道对不对。

解决方案2:

对于一般的进程外服务器而言,那个IDL必须包含在服务端与客户端的两边,不然就客户端就无法将参数调整给服务端使用.
对于进程外的调度服务器而言,也就是实现了IDispatch的双接口,服务端需要IDL,而客户端则不需要IDL,因为IDL已经被注册到类型库之中,所以客户端可以不需要接口的头文本就可以调用组件了.
对于进程内服务器而言,如果组件仅适用于VC,而且不考虑多线程情况,客户端与服务端不需要使用IDL
连接点和事件模型都是客户端与服务端相互调用的例子,事件模型用在ActiveX控件中.
IDL是只描述了客户端调用服务器端的接口吗? 
____________________________________
是的,使用MIDL对IDL进行编辑可产生代理与残根DLL.如果组件种类许多,考虑到需要对组件进行分类,就应该定义多个IDL.一个组件可以包含一个或多个IDL.一般事件模型中,客户需要定义自己的IDL与组件.


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

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

  • COM组件的变量问题?
  • DLL中对进程外的ActiveX/COM组件(EXE形式)的对象实例化问题,DLL内不支持调进程外COM??
  • 怎样将原来不支持COM的mfc类,成为com类
  • MFC实现COM的接口映射的问题。请教高手。急。。
  • COM+组件的注册问题?
  • 关于COM组件的问题
  • com组件全局变量问题
  • COM组件和主程序之间的数据传输问题??
  • MFC中添加服务器组件的注册问题。
  • Com组件使用Recordset的游标问题

相关文章

  • 2017-06-04 afxinl问题
  • 2017-06-04 具难的问题,请关注,高分奉送!!!
  • 2017-06-04 ATL中如何让父控件响应子控件的消息
  • 2017-06-05 初来乍到,弱弱的一问:主进程另开一个console程序,怎样让这个console程序在后台执行而不出现在屏幕上?急
  • 2017-06-04 点精灵的纹理为何是白色?
  • 2017-06-05 求助:如何调用BHOdll(在exe中)
  • 2017-06-04 高分!要怎么做想做一个和Ado中Fields一样的集合.
  • 2017-06-04 哪里有关于复合文档技术的专题?
  • 2017-06-05 vc写的dll,被vb调用,参数传递不正确!vc的参数类型是char
  • 2017-06-05 只有DLL,没有ImportLib,如何调里面的函数?

文章分类

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

最近更新的内容

    • 编译问题?<高手请进>
    • richedit插入mfc编写的activex有内存泄露是为什么?
    • 扩展DLL无法编译通过,高手快来帮忙。
    • ATL进程外组件的指针如何在线程间共享?
    • activex用在网页中,可以用socket等监听和发送数据包给其它程序吗
    • 复制函数的问题
    • 新手问一个简单的类厂问题
    • mfc开发WindowsMediaPlayer播放列表如何与列表框实时同步,显示正在播放,请大神赐教!
    • 夜很深了,还无法睡,有人做过控件的容器吗?
    • 有关显示GIF图的ActiveX控件

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

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