新聞中心

        EEPW首頁 > 測試測量 > 設計應用 > 使用LabVIEW遇到結構體對齊問題

        使用LabVIEW遇到結構體對齊問題

        作者: 時間:2017-01-05 來源:網絡 收藏
        在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的例子。






        評論


        技術專區

        關閉
        主站蜘蛛池模板: 太康县| 上高县| 台中县| 福清市| 庆城县| 株洲县| 加查县| 公主岭市| 黎平县| 洪泽县| 济南市| 偃师市| 象州县| 北海市| 竹溪县| 桂林市| 南城县| 厦门市| 河曲县| 孟村| 康乐县| 龙里县| 肥东县| 乌拉特后旗| 子洲县| 成武县| 邢台市| 志丹县| 婺源县| 日土县| 阳高县| 苏尼特右旗| 凤翔县| 乌海市| 福清市| 谷城县| 衡东县| 平武县| 孟村| 刚察县| 华亭县|