LabVIEW 调用外部 DLL

前言:
        为了在LabVIEW中能够调用其他语言编写的程序,其提供了强大的外部程序接口能力,这些接口包括DLL、C语言接口(CIN)、 ActiveX、NET. DDE、MATLAB等。通过DLL,用户能够方便地调用C、VC、VB等编程语言编写的程序。因此,本章通过示例来学习如何调用外部dll。动态链接库(Dynamic Link Library,DLL)是一个可以多方共享的程序模块,内部对共享的例程和资源进行了封装。动态链接库文件的扩展名一般是.dll,DLL 和可执行文件(EXE)非常类似,最大的区别在于DLL虽然包含了可执行代码却不能单独执行, 必须由Windows应用程序直接或间接调用。

 

一、示例1
       本节我们通过调用外部链接库的方式,来实现:输入一个 Double 型数组数组及其长度,输出一个整型数组。该整型数组中每个元素对应输入数组中每个元素求平方后的基数。

1.1 生成DLL文件
     首先我们在VS2015中新建一个项目,写入算法代码并生成目标DLL文件,生成DLL文件有两种方法:

  (1)方法一:

新建一个win32项目:

在应用程序向导中将应用程序类型选择为DLL:

在源文件中的ArrayFloor1d中编写代码:

在项目中添加一个新项:

选择添加一个模块定义文件:

在模块定义文件写入:

选择重新生成解决方案,就可以在项目文件中得到DLL文件:

(2)方法二:

新建一个win32项目:

在应用程序向导中将应用程序类型选择为DLL:

在ArrayFloor1d中直接写入如下代码,无需在新建模块定义文件:

重新生成解决方案,即可在项目文件中找到DLL文件:

1.2  编写LabVIEW程序

在前面板上编写程序:

通过外部编译器(例如Visual C++)将代码编译为动态链接库DLL文件后,在调用库函数对话框中指定该动态链接库的地址,选择函数名:

线程设置可以任意,调用规范必须设置为C。

在参数页中设置函数返回值类型为Void,添加input参数为 —维双精度浮点型数组,数组格式为数组数据指针。添加input length为整型传值参数, 添加output参数为一维32位整型数组,如下所示:

配置好参数后,就需要要添加输入输出,由于Output用于得到函数汁算结果,因此输入时只需要输入一个常数初始化数组即可。

运行程序,可以在前面板看到:

二、学以致用

本节我们通过仿真信号函数来产生一个带白噪声的正弦信号,然后调用C语言写的一阶简单低通滤波算法来处理该信号。首先仿真信号函数在函数面板中的位置为:

我们在VS2015中新建一个项目,编写一阶简单低通滤波算法的代码:

然后生成目标DLL文件:

然后在labVIEW中新建一个空白 VI,编写如下代码:

然后在调用库函数对话框进行参数的配置:

这里需要格外注意:我在C语言的程序中对形参使用了double,int,float等类型的数据类型:

它们在labVIEW中有对应的数据类型:

这个数据类型一定要配置正确,否则程序就会出错。

配置完成以后,我们就可以运行程序,在前面板观察:

 

原文地址:https://www.cnblogs.com/ybqjymy/p/12530508.html