CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
花落谁家,你作主! 盛大widget设计大赛英雄榜
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  ATL/ActiveX/COM

急======》COM接口中,其接口函数是否可重载

楼主Frank123(Frank)2005-06-01 14:21:41 在 VC/MFC / ATL/ActiveX/COM 提问

我想实现的借口函数是这个样子  
  fun(BSTR   bstrName,BSTR   *pValue);  
  fun(short   nIndex,BSTR   *   pValue);  
  创建时提示fun已经存在,不可以创建,怎么办,难道非要换个名字么? 问题点数:50、回复次数:6Top

1 楼orbit(走了走了)回复于 2005-06-01 14:26:22 得分 10

fun2(short   nIndex,BSTR   *   pValue);  
  Top

2 楼krh2001(边城浪子)回复于 2005-06-01 14:28:06 得分 30

不可重载,但可实现伪重载.   因为你可以使用VARIANT   类型的变量,这样的变量可以传入   各种类型的值,然后你只要在函数的实现里判断一下数据类型然后选择不同的处理方式就行了  
   
  HRESULT   CMyClass::fun(VARIANT   Index,BSTR   *   pValue)  
  {  
          if(Index->vt   ==   VT_BSTR)  
          {  
                //   这样处理.  
                .....  
                return   S_OK;  
          }  
          else   if(Index->vt==VT_I2)  
          {  
                //   那样处理  
                ...  
                return   S_OK;  
          }  
          else    
              return   E_INVALIDARG;       //   无效的参数  
   
  }  
   
   
  Top

3 楼weirdy(远古传说)回复于 2005-06-01 15:14:10 得分 0

必须.c++的重载也是通过换名实现的.Top

4 楼user32( )回复于 2005-06-02 10:04:46 得分 0

名字修饰不同的编译器有不同的实现,而COM的出发点之一就是要消除这种问题,所以COM的接口定义里面不允许同名Top

5 楼wangweixing2000(星(inspiration(灵感)))回复于 2005-06-02 11:03:26 得分 10

接口中是不可以的!Top

6 楼goodboy1881(积木)(谁都别拦着我在水源升星)回复于 2005-06-02 11:21:15 得分 0

所以,这个是无奈的问题Top

相关问题

  • VB 6是否有重载函数?
  • 函数重载
  • 函数重载?
  • 关于函数重载
  • 函数重载问题。
  • 函数重载问题
  • 怎么重载OnEraseBkgnd()函数??
  • 关于函数重载
  • 怎么重载函数?
  • 重载函数问题

关键词

  • 函数
  • 接口
  • 重载
  • pvalue
  • bstr
  • fun
  • vt
  • 实现
  • 类型
  • 处理

得分解答快速导航

  • 帖主:Frank123
  • orbit
  • krh2001
  • wangweixing2000

相关链接

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

广告也精彩

反馈

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