Solución
Hay varias razones diferentes por las que LabVIEW podría fallar al llamar a una función de DLL para prevenir este tipo de fallas:
1. Asegúrese de que está utilizando las mismas convenciones de llamada que la DLLSi la especificación de convención de llamada en el nodo de función de biblioteca de llamadas no coincide con la convención de llamada de la DLL, se producirá un bloqueo. La convención de llamada se especifica en la parte inferior derecha de la ventana del nodo Función de biblioteca de llamadas, como se ve a continuación.
2. Asegúrese de conectar todas las entradas y salidas de su Call Library Function NodeSi no conecta todas las entradas y salidas de un nodo de función de biblioteca de llamadas, la función DLL sobrescribirá la memoria no asignada y causará que LabVIEW se bloquee.
Nota: Si su segunda entrada es un puntero a su primera entrada, entonces su primera entrada no requiere una salida.
3. Asegúrese de que la función DLL no esté sobrescribiendo la memoria de LabVIEWSi no se asigna suficiente memoria o si la función DLL escribe más de lo que se asignó, el DLL sobrescribirá el espacio de memoria reservado de LabVIEW y causará que LabVIEW se bloquee. Asegúrese de que la memoria esté asignada correctamente antes de pasar y leer matrices, cadenas o formas de onda desde archivos DLL.
4. Asegúrese de que LabVIEW esté pasando parámetros a la función en el formato que la función esperaLlamar a la función DLL desde LabVIEW con tipos de datos de parámetros incorrectos (por valor, referencia, identificador, etc.) puede hacer que la función apunte involuntariamente a una ubicación de memoria incorrecta que provoque datos defectuosos, o incluso un bloqueo de LabVIEW o Windows.
5. La función llamada en sí misma hace algo ilegal.Si una función intenta realizar una operación ilegal, podría fallar LabVIEW. Si no es el autor de la función, póngase en contacto con el autor de la función.