Tal como los archivos ejecutables (.exe) los archivos .dll pueden contener código (hecho en algun lenguaje de programación) datos o algun otro recruso
LabVIEW tiene la capacidad de llamar y ejecutar código externo (Dynamic link libraries o Shared libraries, generalmente bajo las extensiones: dll, drv, ocx) incrementando el poderio y robustez de la plataforma de programacion creada por National Instruments.
Vamos a describir un ejemplo básico utilizando una API de Windows (WinAPI) bastante conocida: user32.dll
Esta API contiene una funcion llamada: MessageBox (bastante intuitivo el nombre… no crees?) la cual despliega un cuadro de dialogo “modal” el cual contiene el icono y apariencia del sistema, un set de botones.
A pesar de ser una aplicacion sencilla es muy util para desplegar información de “estatus” o de errores, una vez seleccionada la opción, el dll retorna un numero entero dependiendo el boton que el usuario haya presionado.
Para mayores informes, lea la MSDN de dicha función : http://msdn.microsoft.com/en-us/library/ms645505%28VS.85%29.aspx
El VI presentado como ejemplo, funciona de manera similar (aunque no igual) al nodo: One Dialog Button contenido en la libreria de LabVIEW, este ejemplo no pretende sustituirlo, sino solo demostrar de una manera clara como se puede ejecutar coódigo externo.
Como puede observarse, dependiendo de el tipo de mensaje seleccionado (Message Type) es el tipo de dialogo que aparece en pantalla y la opcion seleccionada retorna un entero (en este caso se hizo un indicador tipo enum para su mejor visualización)
Tal como lo indica la MSDN, el dialogo contiene la apariencia del sistema, asi mismo ofrece la oportunidad de colocr titulo y mensaje al dialogo.
Este ultimo dialogo correponde entonces a el tipo de mensaje llamado : OK/Cancel
Finalmente se presenta un dialogo mostrado a traves de Twitter
Y aqui uno lanzado desde nuestro VI
Saludos, espero sus comentarios






Es muy bueno este post
Tengo problemas con el ENUM y con la constante tipo array en la primera imagen, como configura el indicador enum y la constante
Perdo, ya entendi, solo era cosa de insertar.
Preunta:
¿Como obtengo el valor de salida de este box, en otras palabras como lo uso para continuar o detener un vi?
Hola Anjirus….
El libreria MessageBox te regresa un valor entero dependiendo el boton presionado… lo que hice fue hacer un arreglo de constantes (ENUM) y extraigo del arreglo el elemento de acuerdo al boton correspondiente…. esto lo hago con la ayuda de Array index
El index por supesto es el numero entero que me regreso la API
de este modo, tiene mas sentido observar el boton presionado utilizando un ENUM (con el cual l puedes conectar un case y los valores de cada caso adoptaran el nombre de ENUM… que utilizar los numero enteros que te regresa la API
Te mande el código a tu email
Saludos!
me puedes mandar el codigo?? esta muy bueno el post! gracias mi e-mail es: manuelreyesjrhn@hotmail.com
Que tal Manuel… gracias por seguirnos…
Te mande el ejemplo a tu email
Promueve el blog con tus cuates
Saludos!