使用LabVIEW遇到结构体对齐问题
扫描二维码
随时随地手机看文章
在LV和VC的WIN32 DLL之间传递下面结构体。
typedef struct
{
} uAXIS;
结果char下面的数据全都错误。网上查找到了原因是:LV是采用一个字节对齐的方式,也就是说,LV的簇是无缝隙存储的,占用空间的大小就是这个元素占用空间大小之和。而通常DLL中采用的是整形量对齐(与编译器有关)。
可以把char改为int来应付急用。建议参考LV中的CALL DLL.VI的例子。
扫描二维码
随时随地手机看文章
在LV和VC的WIN32 DLL之间传递下面结构体。
typedef struct
{
} uAXIS;
结果char下面的数据全都错误。网上查找到了原因是:LV是采用一个字节对齐的方式,也就是说,LV的簇是无缝隙存储的,占用空间的大小就是这个元素占用空间大小之和。而通常DLL中采用的是整形量对齐(与编译器有关)。
可以把char改为int来应付急用。建议参考LV中的CALL DLL.VI的例子。