CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
英特尔®游戏设计大赛100美元现金周周送 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  ATL/ActiveX/COM

如何在一个类型库中一个com对象的方法直接调用另外一个对象的方法

楼主phonlee(not a bird,but ...)2003-06-04 10:50:12 在 VC/MFC / ATL/ActiveX/COM 提问

 
      以前使用过最原始的方式。  
      现在使用smart   pointer反而把原始的方法忘了??  
   
       
        先谢了!! 问题点数:50、回复次数:14Top

1 楼phonlee(not a bird,but ...)回复于 2003-06-04 14:52:49 得分 0

UP!!Top

2 楼zzyx(菜农)回复于 2003-06-04 15:53:05 得分 0

看不懂Top

3 楼phonlee(not a bird,but ...)回复于 2003-06-04 16:04:40 得分 0

以前我做的项目:  
  系统分成几层:  
  例如:   data.dll     user.dll     fee.dll  
   
  user.dll用户管理组件要调用data.dll  
  中的方法,只要import这个dll(data.dll)  
  就可以使用其中的对象的方法  
   
   
  现在,因为项目很小。我在一个dll中封装了多个对象。  
  Test1.dll:包括TT1   TT2  
  在TT2的test方法中调用TT1.test  
   
  Top

4 楼phonlee(not a bird,but ...)回复于 2003-06-04 16:06:06 得分 0

微软的adodb类型库就是一个例子。  
   
  但是不知道他如何做的。Top

5 楼skybblue(天蓝)回复于 2003-06-04 18:12:26 得分 5

在你的user的idl文件包含data的idl文件,应该可以吧!Top

6 楼phonlee(not a bird,but ...)回复于 2003-06-04 21:46:56 得分 0

UP  
  Top

7 楼phonlee(not a bird,but ...)回复于 2003-06-04 21:50:14 得分 0

to   skybblue(天蓝):  
   
  我的2个组件在一个dll中,  
  也就是说描述都在同一idl文件中  
   
   
  现在一个组件的接口实现要去调另外一个组件的方法。  
   
  //   Cyy2  
  STDMETHODIMP   Cyy2::test()  
  {  
        ////-〉〉这里调用yy1.test  
  return   S_OK;  
  }  
   
  不知道如何声明和创建对象了。  
  Top

8 楼phonlee(not a bird,but ...)回复于 2003-06-04 22:06:49 得分 0

微软的ado对象模型  
  就是打包于一个dll中的。  
   
  例如  
  而且其中有这样的方法。     _Recordset*   Execute(  
                                                  [out,   optional]   VARIANT*   RecordsAffected,    
                                                  [in,   optional]   VARIANT*   Parameters,    
                                                  [in,   optional,   defaultvalue(-1)]   long   Options);  
  这个是command的方法。  
  不知道如何调用自己的dll中的组件,  
  有什么注意要点??  
   
   
   
  Top

9 楼zzyx(菜农)回复于 2003-06-05 08:31:15 得分 10

原来如此。  
  就跟普通客户端调用另外一个组件的接口一样嘛,没有区别。  
   
  在合适的位置声明接口指针,你建议使用CComPtr模版  
  合适的位置CreateInstance  
  合适的位置调用->DoSomething  
  别忘记释放  
  Top

10 楼phonlee(not a bird,but ...)回复于 2003-06-05 09:11:22 得分 0

普通客户端调用另外一个组件的接口  
   
  有哪些方式,   我以前都是  
  #import     "test.dll"  
   
  然后就可以直接使用了,很方便。  
  Top

11 楼zzyx(菜农)回复于 2003-06-05 09:25:51 得分 30

两个基本的做法:  
   
  #include   "Your接口类.h"  
   
  CComPtr<IYourObj>   m_spObj;  
   
  m_spObj.CoCreateInstance(...);  
  m_spObj->....  
   
  或者  
  IYourObj*   m_pObj;  
  CoCreateInstance(...,&&ppUnk);  
  ppUnk->QueryInterface(IID_YourObject,&m_pObj);  
  m_pObj->...  
   
  Top

12 楼xiaohedou(小河豆(充电中.18%.))回复于 2003-06-05 13:40:43 得分 5

看样子,你是个老手了!怎么还会有这样的问题哪?放松一下!就是这样.  
   
  在A中创建B的实例(CoCeateInstance),然后使用这个实例.zzyx(菜农)   说的对.注意:'.'和'->'.  
  m_spObj.CoCreateInstance(...);  
  m_spObj->....Top

13 楼phonlee(not a bird,but ...)回复于 2003-06-05 14:36:36 得分 0

各位有没有使用过vb写组件的client  
   
  今天的问题太奇怪了  
  居然    
  ttt(yy)   '--失败  
  ttt   yy   '--成功  
   
   
  QQ:5165504  
  多个朋友!!!  
   
  Top

14 楼phonlee(not a bird,but ...)回复于 2003-06-05 14:37:25 得分 0

详细看:  
  http://expert.csdn.net/Expert/topic/1879/1879612.xml?temp=.6184656Top

相关问题

  • 请问怎样用java调用COM对象﹐那里有类型库下载?
  • 如何在不导入类型库的情况下调用COM对象?
  • 在VC6.0下如何调用类型库
  • 类的对象调用protected类型函数的问题
  • servlet中如何存放、传递、调用数据库中字段类型不同的数据集的问题----及不同类型对象的存取
  • COM对象调用!怎样向ASP调用的一个COM的对象中传递一个BSTR*类型的变量
  • 用ado的command对象怎样调用数据库的过程
  • 在linux下如何通过动态链接库调用对象?
  • 在linux下如何通过动态链接库调用对象??
  • 非托管库平台调用数据类型问题

关键词

  • 组件
  • 接口
  • 文件
  • dll
  • 调用
  • spobj
  • 对象
  • 方法
  • pobj
  • 使用

得分解答快速导航

  • 帖主:phonlee
  • skybblue
  • zzyx
  • zzyx
  • xiaohedou

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo