2010-06-22 23 views
2

阵列我有一个COM对象,它需要一个0界定两个维度SAFEARRAY。我需要将这个数组传递给我的C++ COM对象。我可以毫无问题地将VB6 multidim数组传递到C++端,但我不知道如何在C#中设置它,以便正确编组。有谁知道建立一个多维数组并将其传递给COM的步骤?通行证多维(安全的)从C#到COM

+0

如何访问一个2维SAFEARRAY?请给出一个使用SafeArrayAccessData的例子。 – savi 2014-10-01 23:56:48

回答

0

我认为你必须为您的C++ COM DLL一个标准的COM互操作(例如,将其添加为你的C#项目的引用)。然后我认为C#应该将一个标准的.Net(multidimentional)数组正确地编组为一个com安全数组。只要给它一个去:)

+0

不,它将它编组为单维数组,因为IDL只是指定SAFEARRAY * – Steve 2010-06-22 15:16:20

1

我敢肯定,应该工作原样。只要确保你传递了一个真正的二维数组,而不是锯齿形数组。换句话说,传递arr [,]不是arr [] []。