0

我有一个 COM 对象(C#,Visual Studio),它的函数将二维数组作为 in 参数。当我想通过 Agilent VEE 访问此功能时,在功能和对象浏览器中不可见,并且无法访问。如果我将数组更改为单维,则立即变为可见。

我听说 VEE 不适合处理二维数组,但应该有一个解决方法。

任何人都知道如何使用 vee 可见的二维数组制作 com 对象?最好的问候, AK

4

2 回答 2

1

COM 自动化支持 SafeArray 作为数组的包装类型。COM 的 CLR 互操作层自动从 C# 数组类型生成它们。但它们等价于多维数组,而不是锯齿状数组。数组数组没有等效的自动化类型,它们将作为变体的一维数组公开,其中每个变体都是一个数组。

足以使 COM 客户端绊倒,也许语法变得很复杂。

于 2012-04-11T11:11:02.670 回答
0

好的,当然是在发布问题两分钟后找到的。我将我的数组声明为锯齿状数组,

int [][] array = new [][];并将其更改为int[,] array = new int [,];

现在它起作用了!

于 2012-04-11T08:36:05.330 回答