From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

Discusiones sobre Productos NI

cancelar
Mostrando los resultados de 
Buscar en lugar de 
Quiere decir: 

Error con ActiveX

Estoy trabajando con LabView 7.1 y necesito controlar desde ahi un dispositivo que viene con su propio software (y sus propios ActiveX). Según yo, para trabajar con algún ActiveX definido, en la referencia del Automation Open selecciono la clase del ActiveX (Select ActiveX Class), después en el tipo de libreria selecciono el ActiveX que voy a usar, en este caso el del Software de mi dispositivo. En Objects selecciono el cuadro de Show Creatable Object Only. y ya selecciono cualquiera de los que estén en la lista.
 
Algunos Objectos que selecciono de esa lista me funcionan muy bien, pero otros, me sale un error: -2147221164 que es "Clase no registrada". ¿Porque sale ésto? ¿Como pudiera solucionarlo?. Sospecho que esto sale, porque con esto activa el dispositivo, y el dispositivo no esta conectado. Pero, el software, cuando no esta conectado el dispositivo, automáticamente ejecuta la Emulación y no me marca ningún error. El dispositivo no lo tengo a la mano, por eso no puedo probar si es por eso o no. Pero, pudiera ser por otra cosa que olvidé instalar o algo relacionado con LabView?, que es lo que me quiere decir LabView con eso de Clase no registada?, como se registra? o que se hace en esos casos?.
0 kudos
Mensaje 1 de 9
5.108 Vistas
Podria ser una dll no registrada y para componerlo tendrias que saber exactamente cual es.... intenta con:
regsvr32 path_y_nombre_de_la_dll.dll
0 kudos
Mensaje 2 de 9
5.105 Vistas
ok, ya lo intenté con todos los Objects que me marcaba error, y busque los dll's, los cargue con el comando que pusiste y me aparece el siguiente cuadro de dialogo: "Se descargó nombre_del_dll, pero no se encontró el punto de entrada DllRegisterServer. No se puede registrar este archivo".
 
Crees que sea porque no tenga el dispositivo conectado?, el dispositivo viene con un DSP, y una tarjeta, que no lo tengo en esta computadora, pero aqui necesito hacer el programa, y como te digo, el software puede emular que lo tiene. Si lo hago sin ActiveX directamente en el software si funciona.
0 kudos
Mensaje 3 de 9
5.103 Vistas
Otra duda con ActiveX, si ya tengo definida la referencia y con el Invoke Node, cargo un metodo. A la hora de ejecutarlo me sale un error que dice: "No se ha encontrado el miembro". ¿A que se refiere?
0 kudos
Mensaje 4 de 9
5.066 Vistas

Hola Fercho8 esta pregunta tambien la tienes aqui:

http://forums.ni.com/ni/board/message?board.id=6170&message.id=4035#M4035

Sigues con el problema?

Saludos

 

Benjamin C
Principal Systems Engineer // CLA // CLED
0 kudos
Mensaje 5 de 9
4.986 Vistas

Que tal, estoy intentando realizar una aplicación como la que  hice anteriormente.

 

Es un dispositivo que tiene su propio software (para prenderlo, activarlo, etc.). Lo ocupo controlar desde LabView por lo que intento usar las aplicaciones del software mediante las librerías o ActiveX.

Busqué en el directorio  donde se encuentra instalado el programa los .dll; encontré algunos y los intenté cargar con el "Open Reference" de la paleta de ActiveX de LabView.

 

Casi todos me los permite cargar excepto uno, que me marca el siguiente mensaje:

 

"The selected file is not a .NET assembly, type library or automation executable".

 

Pero al parecer esa .dll no la ocupo. Ocupo otra dll donde si encontre todos los métodos, como "activar, ver el estatus del dispositivo, apagar, etc".

Hice una prueba de conexión con la dll mediante el Open Reference, pero me manda un mensaje de error que dice:

 

"Error -2147221164 ocurred at Clase no registrada in Nombre_del_VI.

 

This error code is undefined. No one has provided a description for this code, or you might have wired a number that is not an error code to the error code input"

 

Por lo cual no puedo ejecutar ninguno de los métodos. Probé con las soluciones antes mencionadas y tampoco funciona, me sigue marcando el mismo error.

Probé con el dispositivo conectado, y nada.

 

También probe dar de alta la clase con la instrucción "regsvr32", pero no me permite darla de alta, me aparece el siguiente mensaje:

 

"Se cargó el módulo Ruta_Y_Nombre_de_la_dll, pero se produjo un error en la llamada a DllRegisterServer (código de error 0x8004021). Para obtener más información acerca de este problema, realice una búsqueda en Internet con el código de error como termino de búsqueda".

 

Las demás dll trabajan sin problemas, pero desgraciadamente el dll que ocupo es el que me indica "clase no registrada".

 

Este problema es porque no la puedo trabajar como ActiveX? o como pudiera  trabajar con esta dll?, Si la pongo en el código si me muestra los métodos con los que puedo trabajar, pero en cuanto abro la referencia me marca error.

 

Estoy trabajando con Windows Vista (hice pruebas también en Xp), y LabView 8.6.

 

Adjunto imágenes de los errores tanto al dar de alta la dll con regsvr32 como cuando la ejecuto. Además adjunto el VI donde si puedo ver los métodos (aunque se ocupa el programa).

 

Espero puedan ayudarme, saludos!

Descargar todos
0 kudos
Mensaje 6 de 9
4.377 Vistas

Holade nuevo, por fín he podido dar de alta la libreria usando el comando Regsvr32 (no se podía por seguridad con Vista).

Pero al parecer ese no es el problema, ya que a pesar de haber dado de alta la librería, al ejecutar el VI, donde tengo la referencia de esa librería me aparece el siguiente mensaje:

 

"Error -2147221164 occurred at Clase no registrada
 in Untitled 1

This error code is undefined. No one has provided a description for this code, or you might have wired a number that is not an error code to the error code input."

 

Y sigo sin poder usar los métodos de esta dll (aunque si los puedo ver).

 

Que puede ser?.

 

Adjunto las imagenes de los mensajes que me salen ahora.

Descargar todos
0 kudos
Mensaje 7 de 9
4.353 Vistas

Hola Fercho8 , aquí suena a que es problema del Programa que estas mandando a llamar. Varios programas que manejan Active X tienen mas de un objeto que se puede crear a lo mejor estas utilizando el objeto correcto.

Saludos

 

Benjamin C
Principal Systems Engineer // CLA // CLED
0 kudos
Mensaje 8 de 9
4.171 Vistas
Gracias por tu respuesta. Entonces, eso quiere decir, que con ActiveX no me podré comunicar con el Software?
0 kudos
Mensaje 9 de 9
4.165 Vistas