我需要创建一个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?
答案 0 :(得分:8)
使用此代码
Array ar = Array.CreateInstance(typeof (int), 500);
而不是typeof(int)
使用您自己的数据类型,您的COM对象必须说明您期望的类型。