社区
ATL
帖子详情
COM 接口重载
libinfei8848
2011-08-29 11:16:05
假如在我的com的接口中有个方法store,这个方法不带参数返回值,
HRESULT Store();
现在要加个实现和store一样,但是要提供一个参数返回值的方法,以提供给C#等无法像C++这样直接获取返回值的语言调用。
按照COM的习惯,搞个:
HRESULT Store2(); //现在的“2”已经被和谐了,你懂的
那我怎么命名呢,COM又不支持接口重载。StoreEx?
...全文
229
8
打赏
收藏
COM 接口重载
假如在我的com的接口中有个方法store,这个方法不带参数返回值, HRESULT Store(); 现在要加个实现和store一样,但是要提供一个参数返回值的方法,以提供给C#等无法像C++这样直接获取返回值的语言调用。 按照COM的习惯,搞个: HRESULT Store2(); //现在的“2”已经被和谐了,你懂的 那我怎么命名呢,COM又不支持接口重载。StoreEx?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
hongkun18
2011-08-30
打赏
举报
回复
哈哈.没有特别的办法.没有重载,相当于重新写一个函数,只是功能不一样.
libinfei8848
2011-08-29
打赏
举报
回复
这样的名字很辍啊
ouyh12345
2011-08-29
打赏
举报
回复
建一个新的com控件
珍惜生命远离CPP
2011-08-29
打赏
举报
回复
1 2 3 4 呗
冰点青蛙
2011-08-29
打赏
举报
回复
还是个知名企业
冰点青蛙
2011-08-29
打赏
举报
回复
12345678,
我见过到8的
ndy_w
2011-08-29
打赏
举报
回复
另搞接口Ixxx2
gw_net
2011-08-29
打赏
举报
回复
IDL编译成原始C struct,不支持overload
Microsoft
COM
+组件
接口
的方法的
重载
问题。
Microsoft
COM
+组件
接口
的方法的
重载
问题 ---------------------------------------------------------------------------------------------------
COM
+是的协议标准是独立于语言,方法是不支持
重载
,还原了语言的本质(名称空间为下划线,
重载
为多个_X的序号,X为参数个数)。就像C语言一样,
com
组件提供外部
接口
不能
重载
com
组件提供外部
接口
不能
重载
今天本来打算给ocx增加一个方法,本打算和原来的方法
重载
,但是无论如何调试,都不行。后来发现是因为
COM
接口
是独立于语言的,很多C++语言的特性不被支持,例如函数
重载
。
脚本环境中访问组件非默认的IDispatch
接口
脚本中访问
COM
组件,是通过组件暴露的IDispatch
接口
来实现的。但是,正常情况下在脚本中,只能访问组件默认的IDispatch
接口
,一旦组件实现了多个IDispatc
接口
,则无法访问非默认的
接口
。通过
重载
默认IDispatch
接口
的默认实现,可以来达到向脚本暴露非默认的IDispatch
接口
。 以下面的CTestObject为例: class AT...
.NET中如何在调用
COM
的时候得到返回参数值
如果
COM
组件的
接口
参数含有[out]或者[in,out]返回参数(在VB开发的
COM
组件里面是ByRef),那么,除了上面的做法之外,还得需要额外做一些工作。你必须得告诉Type.InvokeMember()
接口
参数里面哪些参数是一个[in][in,out]或ByRef的参数,否则,你将得不到任何的返回参数值。在调用
接口
中,如果第N个参数是一个引用的参数,那么,第N个Item属性必须要赋值为true来告诉Type.InvokeMember()这是一个引用的参数。// 设置第二个参数为返回参数。
使用c++封装
com
的IEnum
接口
使用c++封装
com
的IEnum
接口
最近在做DirectShow的一些开发,其中总要用到连接filter之类的操作,而filter是通过
com
中的枚举器得到的。在c++中使用枚举器十分不方便,可以看下一段代码: HRESULThr = pGraph->EnumFilters(&pEnum);if (FAILED(hr)) retur
ATL
3,248
社区成员
48,530
社区内容
发帖
与我相关
我的任务
ATL
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
复制链接
扫一扫
分享
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章