从C#向COM(ocx)传递int array,Typelib直接转换过来的类型是ref int&无法传递
代码说明:int array应由C#生成,由ocx的函数填充并返回填充后大小;
尝试方案:
直接使用
int[100] abc = new int[100];
ocx.Get(ref abc[0]); //虽然这明显不行,但我还是尝试了;
试着通过AllocHGlobal申请4*100大小的内存区域然后将第一个int传入
程序消失了,没有报任何异常。
我查找了一些资料,似乎有一些方法可用:
1、需要反编译Interop.xxx.dll为il,然后修改il代码再传递native int,但此方法修改后无法编译il代码;
2、有无其它标准方案?