C# 将VT_数组传递给COM对象

C# 将VT_数组传递给COM对象,c#,c++,com,ref,comobject,C#,C++,Com,Ref,Comobject,我有一个COM对象,它导出如下函数: SetValue(Guid paramID, ref object paramValue); 对于特定的Guid,我应该像文档中所说的那样将paramValue传递为“VT_ARRAY | VT_INT”。实际上,我应该传递4个整数,总共16个字节(4x4)。它在C++中很简单,但是我不能用C语言来做。如何将VT#U数组从C#传递到COM 我试过这个: object[] values = new int[4]; // set values[0]-[4] s

我有一个COM对象,它导出如下函数:

SetValue(Guid paramID, ref object paramValue);
对于特定的Guid,我应该像文档中所说的那样将paramValue传递为“VT_ARRAY | VT_INT”。实际上,我应该传递4个整数,总共16个字节(4x4)。它在C++中很简单,但是我不能用C语言来做。如何将VT#U数组从C#传递到COM

我试过这个:

object[] values = new int[4];
// set values[0]-[4] some numbers
comObj.SetValue(new Guid(Guid_str), ref values);
但它表示:无法将ref-object[]参数转换为ref-object


我还试图创建一个结构并将其传递给函数,但它会导致运行时错误。也许我不能正确定义它。

int[]values=newint[4];对象arg=值;使用OleView将COM DLL作为类型库打开,并显示
SetValue
方法的IDL签名。@HansPassant谢谢。成功了:)