C#调用ocx控件的方法,传递ref byte参数出错
OCX使用C++写的
方法为:char MyFunc( unsigned char * src , unsigned char * result)。
我现在在一个C#程序里使用这个方法(ActiveX控件已经导入并实例化,比如叫ax),MyFunc自动生成的原型是
byte MyFunc( ref byte src , ref byte result)。
我是这样调用的,用C#
byte[] src=new byte[256];
byte[] result=new byte[256];
ax.MyFunc(ref src[0], ref result[0])
出现异常:
检测到 InvalidVariant
Message: 从非托管 VARIANT 转换为托管对象的过程中检测到无效 VARIANT。将无效 VARIANT 传递给 CLR 会导致意外的异常、损坏或数据丢失。
参数传递应该是正确的,不知道是怎么回事。
请高手帮帮忙!!!
------解决方案--------------------