Cuando Utilizo CVI para Crear un DLL que Pase Parámetros de LabVIEW, LabVIEW se Cierra al Llamar el DLL



Hardware: PXI/CompactPCI>>Controllers

Problema:

Desarrollé un DLL de CVI para reservar dinámicamente memoria de LabVIEW para un arreglo unidimensional de números de doble precisión con punto flotante (double-precision floating-point numbers). Cuando llamo dicho DLL en LabVIEW, LabVIEW se cierra. El DLL funciona bien para números de precisión sencilla (single-precision), pero no para números de doble precisión.



Solución:

LabWindows/CVI alinea cada cuatro bytes por default, pero para que las estructuras de datos de LabVIEW mantengan su estructura, usted debe forzar a que CVI alinee al byte más cercano en lugar de a los cuatro bytes más cercanos. Para forzar a CVI a alinear cada byte, inserte:

#pragma pack(1)

antes de definir cualquier estructura de datos de LabVIEW e inserte:

#pragma pack()

después de dichas definiciones.

Esto es comentado con mayor detalle en el archivo cvilvsb.h, que se encuentra en el directorio LabVIEW\cintools.



Ligas Relacionadas:

Archivos Adjuntos:





Día del Reporte: 10/23/2000
Última Actualización: 02/05/2009
Identificación del Documento: 22MC5F8M