日期:2014-05-20  浏览次数:20634 次

.net 和 COM 互操作问题
比如有个COM组件,其中有个接口方法Test(LPStudent* ppStudent);
通过.net的反射来调用,但在向COM组件传参数时遇到问题,这个参数该如何设置并传递给COM对象。出错的代码如下:
object[] pa = new object[1];
IntPtr ptr = new IntPtr();
pa[0] = ptr;
ParameterModifier pm = new ParameterModifier(1);
pm[0] = true;
ParameterModifier[] pms = { pm };
Object objCom = Activator.CreateInstance(type);
Type comobj = objCom.GetType();
comobj.InvokeMember("Test", BindingFlags.InvokeMethod, null, objCom, pa, pms, null, null);

------解决方案--------------------
不会 帮顶
------解决方案--------------------
不会,帮顶。有一本书,专门介绍.net和com互操作的,可以去看看
------解决方案--------------------
你那个参数不需要指定
ParameterModifier pm = new ParameterModifier(1);

为 true,

这个是用于返回参数的.