使用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
结构体
对齐问题

小广播

独家专题更多

富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
走,跟Molex一起去看《中国电子消费品趋势》!
走,跟Molex一起去看《中国电子消费品趋势》!
 
带你走进LED王国——Microchip LED应用专题
带你走进LED王国——Microchip LED应用专题
 
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved