3

我有一个 COM 对象,它导出这样的函数:

SetValue(Guid paramID, ref object paramValue);

对于特定的 Guid,我应该将paramValue作为“VT_ARRAY | VT_INT”传递,如文档中所述。事实上,我应该传递 4 个整数,总共 16 个字节(4x4)。这在 C++ 中很简单,但我无法在 C# 中做到这一点。如何将 VT_ARRAY 从 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

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

4

0 回答 0