Error al llamar método de objeto COM

02/07/2004 - 17:01 por jaimito | Informe spam
Hola compañeros...

En mi aplicación ASP.NET estoy utilizando una DLL ActiveX
creada en VB6. Agrego una referencia COM a mi proyecto
ASP.NET. En una página ASPX, instancio un objeto de la DLL
ActiveX, un ejemplo así:

///////////////////////////////////////////////////
//declaro objeto
Utilidad.Archivo objArchivo = null;

//instancio objeto sin problemas
objArchivo = new Utilidad.Archivo();

//Aquí genera el siguiente error:
//System.Runtime.InteropServices.COMException:
//Invalid procedure call or argument
objArchivo.Abrir("c:\prueba.jr");
///////////////////////////////////////////////////

Exactamente donde llamo al método Abrir genera el error que
comentarié.

Este método en la DLL ActiveX lo declaré así:

Public Function Abrir(ByVal Ruta As Variant) As Variant
'
' IMPLEMENTACIÓN
'
End Function


Llevo ya tres días con problemas al intentar utilizar un
objeto COM desde mi aplicación .NET (como se habrán podido
dar cuenta en los posting).

Les agradezco toda su colaboración al respecto.

Mil gracias...
 

Leer las respuestas

#1 jaimito
02/07/2004 - 19:10 | Informe spam
Gracias Oscar...

La función que estoy llamado realmente se llama Business y
la declaro así en VB6:

Public Function Business(ByVal IdType As String, ByVal Id
As String, ByVal CompanyId As String, ByVal PlanId As
String, ByVal BusinessId As String, ByVal AdviserKey As
String) As ADOR.Recordset

Habrás notado que expuse anteriormente, los parámetros de
tipo VARIANT, sin embargo, hace algunos instantes los
cambié a tipo STRING, pero sigue generando el mismo error.
Asimismo, la función retorna otro objeto COM, que es un
Recordset ADO.

Esta función es expuesta por una clase llamada Commision y
pertenece a un proyecto llamado MyLogic.

La función hace cosas que sé que no vienen al tema, puesto
que ni siquiera está entrando.

En .NET agrego la referencia a la DLL COM y el mismo
entorno me genera en la carpeta BIN dos DLL's llamadas:

Interop.ADOR.dll
Interop.MyLogic.dll

Entonces procedo a declarar una variable así:

MyLogic.CommissionClass objC = null;

La instanció así:

objC = new MyLogic.CommissionClass();

Llamo al método así:

objC.Business("0","1","2","3","4","5");

Exactamente en este llamado me genera el error de:

System.Runtime.InteropServices.COMException:
Invalid procedure call or argument


Agradezco toda tu colaboración al respecto.

Preguntas similares