本文将讲解Labview如果调用由C语言生成的动态连接库dll中的结构体数据类型。
工具/原料
Labview
C
c生成dll
1、定义结构体:typedef struct {double DBL;long I32;char Boolean;} TD1;
2、定义生成dll的接口函数:_declspec(dlle垓矗梅吒xport) void CLUSTERSimple(TD1 *input, TD1 *output);
3、实现函数功能(本函数的输入结构体按顺序包含一个DBL型数据、一稍僚敉视个I32型数据和一个布尔型数据。计算DBL型数据的平方值、取I32型数据值的一半,并将布尔值取反):_declspec(颊俄岿髭dllexport) void CLUSTERSimple(TD1 *input, TD1 *output){ output->DBL = input->DBL * input->DBL; output->I32 = input->I32 / 2; if(input->Boolean) { output->Boolean = FALSE; } else { output->Boolean = TRUE; }}
LabVIEW调用dll
1、新建VI,在程序框图放置调用库函数节点(位于:函数选板-函数-互连接口-库与可执行程序-调用库函数节点);
2、函数:1)选择以及生成dll的文件;2)选择函数名称;3)选择运行方式;4)选择调用规范。
3、参数:1)设置返回值名称和类型;2)设置输入传递参数名称、数据类型和数倌栗受绽据格式;3)设置输出传递参数名称、数据类型和数据格式;
4、回调和错误检查保持默认:
5、LabVIEW实现调用dll的前面板和程序框图如下所示:
6、请保持簇里面的控件顺序和C语言结构体中的变量顺序一致。