Tôi đang cố gắng chuyển mảng .NET sang thư viện COM VB6. Tôi có một đối tượng đó là COM wrapper của VB6 đối tượng. Nó có phương pháp với chữ ký sau đây:Vượt qua mảng C# của đối tượng COM vào VB6
[MethodImpl(MethodImplOptions.InternalCall,
MethodCodeType = MethodCodeType.Runtime)]
void AddEx([MarshalAs(UnmanagedType.Struct)] object vSafeArrayOfItems);
nhưng khi tôi gọi nó là tôi nhận được một ArgumentException
với thông báo sau:
Giá trị không nằm trong phạm vi dự kiến.
Loại ngoại lệ và mô tả của nó thậm chí không phụ thuộc vào phần tử được truyền.
Có ai biết cách giải quyết vấn đề này không?
UPD: Tôi đã xóa các hội đồng bao bọc .NET và thư viện .COM nguồn tham chiếu. Không có thay đổi nào xảy ra.
Các [MarshalAs] thuộc tính rõ ràng là sai. –
Đồng ý. @ user1453239 tại sao bạn nghĩ rằng đó là một cấu trúc? – tcarvin
Decaratioin này là từ thư viện mà tôi đang cố gắng sử dụng. Nó được cung cấp bởi nhà phát triển bên thứ ba. –