“LLamar DLL con retorno de estructura en LabVIEW”
Estoy creando una DLL en C y estoy tratando de llamar a las funciones para obtener un valor de retorno en forma de estructura.
Si uso variables estándar para los retornos de las funciones (int, float, char, char*), funciona bien.
Mi estructura:
typedef struct
{
int éxito; /** Éxito al llamar la función /
char devuelto[32]; / Devolución de la función llamada **/
} DLL_RETURN_t;
Función:
DLL_RETURN_t* getData() {
DLL_RETURN_t* prueba;
prueba->éxito = 1;
strcpy((char*)prueba->devuelto, “Simple Test”);
return prueba;
}
Uso la herramienta de importación de biblioteca compartida LabVIEW para importar la DLL y crear los VIs.
El VI creado tiene una salida entera, pero esperaba un clúster o un puntero.
davy.ai
Solución:
Necesita utilizar el
Nodo de Llamada de DLL
en LabVIEW para llamar a la función en la DLL. Este nodo le permitirá especificar el tipo de retorno de la función como un cluster o un puntero.