【发布时间】:2010-06-23 00:54:15
【问题描述】:
我有一个 COM 对象,它采用二维的 0 有界安全数组。我需要将此数组传递给我的 C++ COM 对象。我可以毫无问题地将 VB6 multidim 数组传递到 C++ 端,但我不知道如何在 C# 中设置它以便正确编组。有谁知道设置多维数组并将其传递给 COM 的步骤?
【问题讨论】:
-
如何访问二维 Safearray?请举一个使用 SafeArrayAccessData 的例子。
我有一个 COM 对象,它采用二维的 0 有界安全数组。我需要将此数组传递给我的 C++ COM 对象。我可以毫无问题地将 VB6 multidim 数组传递到 C++ 端,但我不知道如何在 C# 中设置它以便正确编组。有谁知道设置多维数组并将其传递给 COM 的步骤?
【问题讨论】:
我很确定它应该按原样工作。只需确保您传递的是真正的二维数组,而不是锯齿状数组。换句话说,传递 arr[,] 而不是 arr[][]。
【讨论】:
我认为您必须为您的 C++ COM dll 生成标准的 com 互操作(例如,将其添加为对您的 c# 项目的引用)。然后我认为 C# 应该正确地将标准 .Net(多维)数组编组为 com 安全数组。试试看吧:)
【讨论】: