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

2015-10-26 08:17:11来源: eefocus
在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的例子。




关键字:LabVIEW  结构体  对齐问题

编辑:什么鱼 引用地址:http://www.eeworld.com.cn/Test_and_measurement/2015/1026/article_13664.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
LabVIEW
结构体
对齐问题

小广播

独家专题更多

迎接创新的黄金时代 无创想,不奇迹
迎接创新的黄金时代 无创想,不奇迹
​TE工程师帮助将不可能变成可能,通过技术突破,使世界更加清洁、安全和美好。
TTI携TE传感器样片与你相见,一起传感未来
TTI携TE传感器样片与你相见,一起传感未来
TTI携TE传感器样片与你相见,一起传感未来
富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved