4

我需要创建一个 SafeArray 以传递给 COM 方法。
如何在 C# 中创建/维护/销毁 SafeArray?

我以前从未遇到过 SafeArrays,并且通过快速的谷歌搜索找不到太多,因此非常感谢任何帮助。

编辑:添加示例代码:

COM 方法签名

[id(0x000000d5)]
HRESULT GetTags(
                [in] SAFEARRAY(long) buffer, 
                [out, retval] long* retval);

C#中生成的互操作方法

int GetTags(System.Array buffer)
    Member of Cwise.IUser

所以在这种情况下,我必须创建一个 SafeArray 还是可以简单地将一个普通的 .Net 数组传递给 COM 方法 GetTags?

4

1 回答 1

8

为此使用这样的代码

Array ar = Array.CreateInstance(typeof (int), 500);

而不是typeof(int)使用您自己的数据类型,您的 COM 对象必须告诉您预期的类型。

于 2011-05-04T16:06:32.250 回答