es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Creando una DLL en C para llamar desde LabVIEW

Me gustaría escribir algunas funciones avanzadas en C para luego llamarlas desde LabVIEW. Como prueba, he comenzado con un código simple y he construido una dll a partir de él utilizando Code Blocks. Sin embargo, tengo dificultades con la DLL en LabVIEW, donde obtengo un error 13 desde el nodo Call Library.

“LabVIEW: (Hex 0xD) Fallo al cargar la biblioteca dinámica debido a la falta de símbolos externos o dependencias, o debido a un formato de archivo inválido”. Imagen de la implementación en LabVIEW.

He agregado la ruta de la DLL a la variable de entorno del sistema.

Aquí está el código C (función) utilizado para construir la dll:

int Addition(int a, int b) {
    int out = 0;
    out = a + b;
    return out;
}

Espero que alguien pueda ayudarme con este problema de principiante.

Espero con ansias sus comentarios, gracias.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    De acuerdo con el mensaje de error que recibiste, parece que puede haber un problema con las dependencias o el formato de archivo de tu DLL. Aquí hay algunas soluciones potenciales para intentar:

    1. Verifica que tu código C esté utilizando la misma convención de llamada que LabVIEW. LabVIEW utiliza una convención de llamada estilo C, por lo que tu código C debe especificarlo en la declaración de la función. Una forma de hacer esto es usar la palabra clave __cdecl. Por ejemplo:
      __declspec(dllexport) int __cdecl Addition(int a, int b)
      {
         int out = 0;
         out = a + b;
         return out;
      }
      
    2. Asegúrate de que todas las dependencias necesarias estén incluidas en la construcción de la DLL. Esto incluye cualquier biblioteca externa o función en la que tu código C dependa. En Code::Blocks, puedes especificar las dependencias en Proyecto > Opciones de construcción… > Configuraciones del enlazador.
    3. Verifica que la DLL se esté construyendo correctamente probándola en un programa C simple. Puedes usar un programa como Visual Studio o Code::Blocks para probar la DLL y asegurarte de que funcione correctamente.

    4. Verifica que la variable de entorno del sistema para la ruta de tu DLL esté configurada correctamente. Puedes hacer esto abriendo un símbolo del sistema y escribiendo echo %PATH%. La ruta de tu DLL debería estar incluida en la salida.

    5. Intenta usar un método alternativo para llamar a la DLL desde LabVIEW, como el nodo de función de biblioteca de llamada o el nodo de DLL.

    Esperemos que una de estas soluciones ayude a resolver el problema que estás experimentando. ¡Buena suerte!

Comments are closed.