求助:C#调用COM组件的连接点事件,函数参数是结构体如何传

时间:2021-12-27 05:09:32
用VC做的COM组件,
连接点事件的方法需要传一个结构体作参数,参数太多,用结构体封装比较方便。
C#代码:

 public Form1()
{
   aa = new IMYCOMLib.IMycomInterface();
   aa.NotifyFinish += new _IMycomInterfaceEvents_NotifyFinishEventHandler(aa_NotifyFinish);

   aa.NotifyData += new _IMycomInterfaceEvents_NotifyDataEventHandler(aa_NotifyData);
     
}

void aa_NotifyFinish(string id)
{
     xxxx;


void aa_NotifyData(string ID, ref Result pResult)
{
     xxxx;
}  
 

在C# 的代码中已经可以看到要添加的连接点事件的方法,而且也可以看到定义的结构体Result的成员。
但是运行时无法进入这个函数,没有任何反映,
如果方法的参数不是结构体,就没有问题,可以进入方法,一改为结构体就不行了。

求教大家,如何用结构体来当做参数传递?

4 个解决方案

#1


午休时间,各路大神现身, 求助:C#调用COM组件的连接点事件,函数参数是结构体如何传

#2


我曾经也遇到过,可惜一时没有解决方案。
后来使用的 COM 接口来传递。
结果也支持脚本了。

#3


C#创建对应的结构体

COM组件注册后引用会让你传一个object过去的吧

#4


额,最终还是没解决,用string转换了,悲催,楼上回复的各位都有分,感谢!

#1


午休时间,各路大神现身, 求助:C#调用COM组件的连接点事件,函数参数是结构体如何传

#2


我曾经也遇到过,可惜一时没有解决方案。
后来使用的 COM 接口来传递。
结果也支持脚本了。

#3


C#创建对应的结构体

COM组件注册后引用会让你传一个object过去的吧

#4


额,最终还是没解决,用string转换了,悲催,楼上回复的各位都有分,感谢!