Interop - arreglos como parametros de salida

08/01/2007 - 05:57 por egcito | Informe spam
Hola a todos.

Estoy desarrollando un componente .net que debe ser consumido desde VB6.
Para ello expongo el componente como COM.
Necesito devolver informacion desde el componente para lo cual creo un
conjunto de arreglos, a la hora de devolverlos como parametros de salida
tengo el siguiente inconveniente.

Ej. en C# con un arreglo como parametro de salida:

public bool GetData(ref string[] data)
{
...
data = new string[10];
data[0] = "CERO";
data[1] = "UNO";
...
data[9] = "DIEZ";
...
}

El componente compila sin problemas pero cuando se invoca desde VB6 asi:

Dim o As Object
Set o = CreateObject("..")
Dim data() As String ' o Dim data(<un_numero>) As String [da lo mismo]
MsgBox GetData(data)

Obtengo un error de automatizacion.

Para que funcione la cosa debo hacer:

En C#:

public bool GetData(ref object data)
{
...
string[] a = new string[10];
a[0] = "CERO";
a[1] = "UNO";
...
a[9] = "DIEZ";
data = a;
...
}

Y desde VB6:

Dim o As Object
Set o = CreateObject("..")
Dim data
MsgBox GetData(data)

TODO OK

La pregunta es, ¿como puedo obtener mi o mis arreglos de salida pasando los
mismos como arreglos al componente COM .NET y no como Variant y sin tener que
definirlos como object desde C#? ¿Hay algun articulo que me pueda guiar un
poco con el tema arreglos e interop?

Desde ya muchas gracias!

Salu2

EGCITO
 

Leer las respuestas

#1 Octavio Hernandez
08/01/2007 - 23:43 | Informe spam
Hola,

¿Hay algun articulo que me pueda guiar un
poco con el tema arreglos e interop?





Tienes el libro sobre Interop de Andrew Troelsen?
Se descarga gratuitamte de www.apress.com.

Slds - Octavio

Preguntas similares