Creando un DLL en CVI que Pueda Ser LLamado desde LabVIEW



Software Primario: LabVIEW Development Systems>>Full Development System
Versión de Software Primario: 5.1
Versión de Software Primario Corregido: N/A
Software Secundario: N/A

Problema:

¿Cómo llamo un DLL que he creado en CVI desde el Call Library Function Node en LabVIEW?

 



Solución:

Complete los siguietes pasos para crear un DLL en CVI:

  1. Abra CVI y cree un nuevo proyecto (.prj) y un nuevo archivo fuente (.c).

  2. Edite el archivo fuente y agregue las siguientes líneas de encabezado:


    /* Include files needed to compile DLL */
    #include <windows.h>
    #include <cvirte.h> /* needed if linking DLL in external
    compiler; harmless otherwise */
    #include <userint.h>


    BOOL __stdcall DllMain (HINSTANCE hinstDLL, DWORD fdwReason,
    LPVOID lpvReserved)
    {
    return TRUE;
    }
  3. Agregue una función o cualquier código que desee al DLL. Marque las funciones que quiere exportar como DLLEXPORT. El siguiente código de ejemplo multiplica un número por dos.
    void DLLEXPORT twise (double *my)
    {
    *my *=2;
    }

  4. Seleccione Build » Target en CVI y cambie el target a Dynamic Link Library.

  5. Seleccione Build » Create Dynamic Link Library. Asegurese que el campo Export What esté en Symbols Marked to Export, como se muestra en el ejemplo.


Complete los siguientes pasos para usar el DLL en LabVIEW:

  1.  Abra un nuevo VI y coloque un Call Library Function Node en el diagrama de bloques.

  2. De clic derecho sobre el nodo y seleccione Configure desde el menú de atajos.

  3. Navegue hasta el DLL que creó.

  4. En la ventana Function, introduzca el nombre de la función que quiera llamar, tal como twise.

  5. Introduza los parametros correctos y tipos de datos, como se muestra en el ejemplo.

  6. Cablee las entradas y salidas adecuadas desde el Call Library Function Node y establezca valores de entrada. Todas las terminales de entrada deben contener algo conectadas a ellas.
  7. Guarde el VI.

  8. Corra el VI. Si todos los parametros están definidos correctamente, el VI debe correr exitosamente.

Nota: Los archivos anexos son un ejemplo del procedimiento descrito anteriormente.



Ligas Relacionadas:

KnowledgeBase 22MC5F8M: When Using CVI to Create a DLL that Passes LabVIEW Parameters, LabVIEW Crashes When Calling the DLL (Inglés)
Developer Zone Tutorial: Calling a DLL from LabWindows/CVI That Was Generated by LabVIEW 6i (Inglés)
Developer Zone Tutorial: Creating and Calling LabVIEW DLLs with Various Data Types from CVI (Inglés)



Archivos Adjuntos:


mydll2.vi - mydll2.vimydll2.dll - mydll2.dll
mydll2.prj - mydll2.prj
mydll2.c - mydll2.c



Día del Reporte: 09/29/1998
Última Actualización: 04/25/2008
Identificación del Documento: 1DS6OG0O