日期:2014-05-17  浏览次数:21068 次

求助:C#调用COM组件的连接点事件,函数参数是结构体如何传
用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的成员。
但是运行时无法进入这个函数,没有任何反映,
如果方法的参数不是结构体,就没有问题,可以进入方法,一改为结构体就不行了。

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

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

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