LabView 3.2: llamada de una DLL de datos numéricos
Esta entrada es continuación, en parte, de la anterior en la cual se crea una DLL normal con el visual basic, se puede ver Aquí. Así que para tener la dll seguís los pasos o la descargáis Aquí, todo gracias a elGuille.info, o a lo mejor si sabéis hacer dll por otros medios podréis hacer esta función tan fácil:
Código en VB:
Public Function Saludo() As String Saludo = "Hola desde la DLL Prueba" End Function Public Function Suma(ByVal n1 As Double, ByVal n2 As Double) As Double Suma = n1 + n2 End Function
Ahora nosotros llamaremos la función Suma de la DLL llamada Prueba.dll por el VI Call Library Function Node para sumar dos números. La función Saludo, si se le llama por medio de cadena en C solo aparece la H, y si se la llama como si fuera cadena Pascual sale todo pero da error, claro, si alguno tiene una idea que no deje de dejar un comentario.
Como siempre creamos un nuevo VI en blanco y le añadimos en el panel frontal dos controladores numéricos y otro solamente de indicador, para hacer la suma y verla.
En el panel del bloque de diagrama se coloca en medio el VI Call Library Function Node y le damos dos veces o en el segundo botón del ratón en configure..
- Library Name or Path: se pone la ruta de la DLL
- Funcion Name: saldrá los nombres de las funciones disponibles en este caso: Saludo, Suma y además aparecen otras llamadas DllCanUnloadNow, DllGetClassObject, DllRegisterServer y DllUnregisterServer, nosé porque ni para que sirve, supongo que son debidas a crear la DLL con VB.
- Calling Conventions: se elige stdcall (WINAPI) . Si creaste la DLL con otro programa para C y sin seguir el estándar de llama para API en Windows selecciona C.
- Parameter: se puede escribir el nombre que se quiera para los parámetros, pero en orden y si se parece a la función en C mejor, en este caso como parámetro de salida la de la función, Suma, y parámetros de entrada n1 y n2 que son como se llaman en la función original.
- Type: Numeric.
- Data Type: 8-byte Double.
Para añadir los parámetros de entrada n1 y n2 se le da al botón Add a Parameter After y se pone lo mismo en todas las casillas y además:
- Pass: Value
En el prototipo de la función saldrá double Suma(double n1, double n2);
Bueno pues ya esta ha ejecutar el VI, en este caso no se apuesto en un bucle, simplemente pulsa Run Continuamente, luego su Stop y suma todo lo que quieras con esta pedazo librería.
Si se intenta llamar a la función con Type: String y String Format: C String Pointer en el indicador solo sale un H. La función sería CStr Saludo(void);
