您的位置 首页 模拟

运用LabVIEW遇到结构体对齐问题

在LV和VC的WIN32DLL之间传递下面结构体。typedefstructnpm_axis{intaxis_select;intsv;初始速度intv;驱动速度

在LV和VC的WIN32 DLL之间传递下面结构体
typedef struct npm_axis
{
int axis_select;
int sv;//初始速度
int v;//驱动速度
//int acc;//直线加快度
//int dec;//直线减速度
int sacc;//s曲线加快区间
int sdec;//s曲线减速区间
int tacc;//加快时刻
int tdec;//减速时刻
char line_s;//加快形式
int limit_speed;//速度限制
int pos;//肯定
int dis; //增量
int center;
//int speed;//发动指令
} uAXIS;

成果char下面的数据全都过错。网上查找到了原因是:LV是选用一个字节对齐的方法,也便是说,LV的簇是无缝隙存储的,占用空间的巨细便是这个元素占用空间巨细之和。而一般DLL中选用的是整形量对齐(与编译器有关)。

能够把char改为int来敷衍急用。主张参阅LV中的CALL DLL.VI的比如。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/zhishi/moni/214781.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部