描述:
我正在转换一个vb得com组件,重新用vc写,写到这个接口方法时不会写了,vb里面是用object类型来传递的,不知道用atl怎么做?
解决方案1:
请教各位
如何实现返回值一个SAFEARRAY数组的组件方法啊
你得把AlarmItem也实现成一个组件类,假如它的接口是IAlarmItem,那么你上面的接口方法参数传这个IAlarmItem*就行了,通过这个接口就可以操作AlarmItem组件对象
解决方案3: 如果AlarmItem是个结构体就很好处理,只要在你的idl中也typedef struct AlarmItem,
然后声明接口,oAlmItm不是出口参数,也好写:
HRESULT Add(long TransID, AlarmItem oAlmItm)
{
AlarmItem newAlarmItem = {0};
memcpy(&newAlarmItem, oAlmItm, sizeof(AlarmItem));
//m_oTransCol.Add(oItm, CStr(TransID));不知道什么意思,略掉
}
如果AlarmItem是个自定义的类,就麻烦一些,需要让这个类继承自IDispatch,
这样就可以用IDispatch指针类型传递AlarmItem的指针,这种代码我也不会写,
你自己找别的资料看看吧
IDispatch**
解决方案5:对vb下写的组件不懂!