4
我需要創建一個SafeArray傳遞給COM方法。
如何在C#中創建/維護/銷燬SafeArray?如何創建一個SafeArray C#?
我從來沒有遇到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?
@Eugen:我認爲它期待typeof int,但我應該怎麼知道數組的大小? – shane87 2011-05-04 16:40:55
通常COM對象將需要告訴你數組的大小。幾乎所有使用相同方法的Windows API方法,如果您發送空值,它們將返回所需的大小,然後創建數組並將其傳遞給方法。不知道你的COM是如何創建的。 – Eugen 2011-05-04 19:03:40
我編輯了我在問題中提供的示例代碼,如果這對您更有意義? – shane87 2011-05-05 10:17:50