C# 写的COM组件,C++调用时怎么传入函数指针

Monkeyberg 2015-06-10 10:45:38
各位好,请教一个问题。
C# 写的COM组件,C++调用时怎么传入函数指针。
C++ .tli文件里的定义

//
// interface IRealPlayer wrapper method implementations
//
inline VARIANT_BOOL IRealPlayer::Play ( _bstr_t camId, enum StreamTypez streamType, VARIANT_BOOL onSound, struct _COMStreamHandler * streamCallBack, const _variant_t & state ) {
VARIANT_BOOL _result = 0;
HRESULT _hr = raw_Play(camId, streamType, onSound, streamCallBack, state, &_result);
if (FAILED(_hr)) _com_issue_errorex(_hr, this, __uuidof(this));
return _result;
}

C# 里面 _COMStreamHandler 定义是一个委托

public delegate void COMStreamHandler(long timestamp, StreamDataTypez type, byte[] data, object state);


我在C++ 写了静态函数

static void StreamHandler(LONG timestamp, SSNetSdk_COM::StreamTypez type, VOID * data, _variant_t state)


请问在调用Play时该怎么调用呢?


//以下代码 StreamHandler 类型形参不兼容
im_realPlayEx->Play(ChannelId, SSNetSdk_COM::StreamTypez_Main, VARIANT_FALSE, StreamHandler, user);
...全文
206 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
oyljerry 2015-06-10
  • 打赏
  • 举报
回复
函数指针c#中也不好直接处理,还是传递其他数据类型吧
Monkeyberg 2015-06-10
  • 打赏
  • 举报
回复
大神都在吗,帮看看

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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