LabVIEW是一种图形化编程语言,具有简单易学、形象直观的特点。同时,LabVIEW作为一种通用的、完善的高级编程语言,具有强大的外部接口能力,可以实现LabVIEW与C、Basic、Matlab等编程语言,甚至与外部应用软件(如Word、Excel等)之间的通信,达到代码复用及提高开发效率的目的。通过动态连接库DLL文件实现LabVIEW中与外部程序的接口技术,是最常用的一种方式,通过这种技术可以编写出功能更加强大的应用软件。
相对于其它编程语言,在LabVIEW中调用DLL文件是比较简单的。下面通过一个例子说明在LabVIEW平台中调用DLL文件的编程方法。
调用DLL例子
本例调用C语言编写的DLL文件“MyDll.dll”里的函数“MyFunc”,其函数声明原型如图1所示:

该函数实现的功能为,产生一个初始值为x0、间隔为deltx、长度为length的一维数组y,并给出该数组的最后一个值lastData和函数的运行状态信息status。从函数的声明中可以看出,该函数中数据类型涉及到了“double”类型、“int”类型和“char”类型(对应LabVIEW的字符串型),在参数传递中也涉及到了值传递(x0、deltx、length)和指针(y、lastData、status)传递方式,较为复杂。为便于理解,图2给出了该函数的C语言实现代码。
该例调用DLL函数后程序运行前面板如图3所示,在前面板上放置了3个输入型控件和3个显示型控件,分别对应“MyFunc”函数的6个参数。当改变参数x0、deltx或length的值时,程序实时显示出y、lastData、status的值。
图3 调用DLL的参数传递测试的前面板
程序框图如图4所示,在参数x0、deltx或length的值改变事件中调用DLL文件“MyDll.dll”里的“MyFunc”函数计算y、lastData、status的值。
该例能否正确运行,关键在于在调用库函数的配置对话框中,对该函数的输入输出参数进行正确配置。从该函数的原型声明中可以看出,该函数的调用规范上,本例需设置为“C”调用方式,如图5所示。
在调用库函数“参数”选项卡中,“MyFunc”函数本身返回值为“void”,所以,其返回类型设置为空即可。对其它6个参数设置如下:
l x0:“类型”设为“数值”;“数据类型”设为“8字节双精度”选项;“传递”设为“值”;
l deltx:同x0设置;
l length:“类型”设为“数值”;“数据类型”设为“有符号32位整型”选项;“传递”设为“值”;
l y:该参数为指向“double”的指针类型,对应LabVIEW的一维数组。所以,“类型”设为“数组”;“维数”设为1;“数据类型”设为“8字节双精度”;“数组格式”设为“数组数据指针”;最小尺寸设为“
l lastData:该参数在C语言中声明为“double &lastData”,为引用传递方式,对应LabVIEW中指向“double”类型的指针方式。所以,“类型”设为“数值”;“数据类型”设为“8字节双精度”;“传递”设为“指针”;
l status:该参数在C语言中声明为“Char* status”,即指向字符的指针,实际对应LabVIEW的字符串方式。所以,“类型”设为“字符串”;“字符串格式”设为“C字符串指针”;最小尺寸设为“
参数正确配置后,在图4程序框图中,需要说明的是,对于参数y和status,由于在本质上都是一维数组,且参数设置的最小尺寸本例都设为了“
结论
由上面的例子可以看出,LabVIEW中调用动态连接库DLL文件中函数的编程并不复杂,关键是要知道被调用函数的名称,并且保证输入、输出参数的顺序及数据类型要配置正确即可。
备注
大家如果有兴趣的话可以加关注并私信回复:LabVIEW001,则可获得该文章的DLL文件及LabVIEW原程序下载链接。欢迎加关注,共同交流。
到此这篇labview调用dll动态库运行报内存泄露(labview调用dll崩溃)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/bcyy/53835.html