使用LabVIEW遇到結(jié)構(gòu)體對(duì)齊問題
掃描二維碼
隨時(shí)隨地手機(jī)看文章
在LV和VC的WIN32 DLL之間傳遞下面結(jié)構(gòu)體。
typedef struct
{
} uAXIS;
結(jié)果char下面的數(shù)據(jù)全都錯(cuò)誤。網(wǎng)上查找到了原因是:LV是采用一個(gè)字節(jié)對(duì)齊的方式,也就是說,LV的簇是無縫隙存儲(chǔ)的,占用空間的大小就是這個(gè)元素占用空間大小之和。而通常DLL中采用的是整形量對(duì)齊(與編譯器有關(guān))。
可以把char改為int來應(yīng)付急用。建議參考LV中的CALL DLL.VI的例子。