|
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.
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.
|