0

我正在寻求帮助将具有多种数据类型的对象传递给如下定义的 COM 对象...

这是 COM 对象接口:

[id(0x00000004), helpstring("finds the next best item")]
unsigned long GetNextItem([in, out] SAFEARRAY(VARIANT) Content);

这是需要传递给 COM 对象的数组。

content[0][0] = 0.0 
content[0][1] = 1   
content[0][2] = 1   
content[0][3] = 1      
content[0][4] = -1  
content[0][5] = 0.0 
content[0][6] = 0.0

我有两个问题:

  1. 在 C# 4.0 中创建一个可以包含多种数据类型的对象。
  2. 通过它的公共接口将该对象传递给 COM 对象。

这是我无法克服的错误:

SafeArrayTypeMismatchException{“指定的数组不是预期的类型。”}

任何帮助表示赞赏!

4

1 回答 1

2
content[0][0] = 0.0 

那是一个锯齿状数组,它不能转换为 SafeArray。您需要创建一个多维数组:

var content = new object[42, 666];
content[0, 0] = 0.0;
于 2012-07-18T18:08:20.710 回答