Ich versuche, .NET-Array zu COM VB6-Bibliothek zu übergeben. Ich habe ein Objekt, das COM-Wrapper von VB6-Objekt ist. Es hat Methode mit folgenden Signatur:Weitergabe von C# -Array von COM-Objekten an VB6
[MethodImpl(MethodImplOptions.InternalCall,
MethodCodeType = MethodCodeType.Runtime)]
void AddEx([MarshalAs(UnmanagedType.Struct)] object vSafeArrayOfItems);
aber wenn ich es nenne ich ein ArgumentException
mit der folgenden Meldung:
Wert nicht innerhalb des erwarteten Bereichs fällt.
Der Typ der Ausnahme und ihre Beschreibung hängt nicht einmal von übergebenen Element ab.
Weiß jemand, wie man dieses Problem umgehen kann?
UPD: Ich habe .NET-Wrapper-Assemblys und referenzierte .COM-Quellbibliotheken entfernt. Keine Änderungen waren passiert.
Das [MarshalAs] Attribut ist eindeutig falsch. –
Einverstanden. @ user1453239 Warum hast du gedacht, es war eine Struktur? – tcarvin
Diese Deklaration stammt aus der Bibliothek, die ich verwenden möchte. Es wird von Drittentwicklern bereitgestellt. –