当前位置:首页 > 测试测量 > 测试测量
[导读]在LV和VC的WIN32 DLL之间传递下面结构体。 typedef struct npm_axis { int axis_select; int sv;//初始速度 int v;//驱动速度 //int acc;//直线加速度 //int dec;//直线减速度 int sacc;//s曲线加速

在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的例子。




本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读
关闭