VB6如何实现C++类库中的只读集合接口?

kingyo 2013-08-10 10:10:45
有一个用C++写的类库,其中一个接口是需要客户端实现的:
interface IXXX;

[
object,
uuid(C200D8FD-1079-428C-8BC8-2E2538B99E87),
dual,
nonextensible,
pointer_default(unique)
]
interface IXXXs : IDispatch
{
[propget]
HRESULT Count([out, retval] LONG* Result);
[propget, id(DISPID_VALUE)]
HRESULT Item([in] LONG Index, [out, retval] IXXX** Result);
[propget, id(DISPID_NEWENUM)]
HRESULT _NewEnum([out, retval] IUnknown** Result);
};

这个接口是一个只读的集合接口,没有Add和Remove。
我现在要在VB中实现这个接口,我新建了一个类模块,写上
Implements IXXXs
但是编辑窗内没有出现IXXXs,无法添加IXXXs的成员,而且编译的时候报
Compile error:
Bad interface for Implements: method has underscore in name
就是方法名中有下划线,应该指的是_NewEnum,但是_NewEnum不就是为了VB的foreach语句服务的吗?

请问大家,我有没有办法在VB中实现这个接口?或者需要去掉_NewEnum或者改名为NewEnum?
...全文
332 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
kingyo 2013-09-29
  • 打赏
  • 举报
回复
VB?怎么做?
kingyo 2013-08-10
  • 打赏
  • 举报
回复
好的,我试试看。
worldy 2013-08-10
  • 打赏
  • 举报
回复
_NewEnum这个属性不要加下前置下划线试试 _在VB类接口中有特别的用法,前置_的借口方法是隐藏的

863

社区成员

发帖
与我相关
我的任务
社区描述
VB COM/DCOM/COM+
c++ 技术论坛(原bbs)
社区管理员
  • COM/DCOM/COM+社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧