我試圖將.NET數組傳遞給COM VB6庫。我有一個對象,它是VB6對象的COM包裝器。它有方法具有以下簽名:將COM對象的C#數組傳遞給VB6
[MethodImpl(MethodImplOptions.InternalCall,
MethodCodeType = MethodCodeType.Runtime)]
void AddEx([MarshalAs(UnmanagedType.Struct)] object vSafeArrayOfItems);
,但是當我把它叫做我得到以下消息的ArgumentException
:
值不在預期的範圍內。
異常的類型及其描述甚至不依賴於傳入的元素。
有沒有人知道如何解決這個問題?
UPD:我刪除了.NET包裝程序集和引用的源.COM庫。沒有發生變化。
的[的MarshalAs]屬性顯然是錯誤的。 –
同意。 @ user1453239你爲什麼認爲這是一個結構? – tcarvin
這個聲明來自我正在嘗試使用的庫。它由第三方開發人員提供。 –