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