zoukankan      html  css  js  c++  java
  • 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中有对应的数据类型:

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

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

     

  • 相关阅读:
    jna学习---windows下一个完整调用
    ndk ffmpeg
    POJ_3264_Interval Tree 最大最小值之差
    ROBY_筛选法求素数 与 打表 学习, 试验可以开的数组大小, 10位int数组
    POJ_2186_Tarjan Popular_Cows
    POJ_1961 KMP next的典型应用 类似于 poj2406
    HDOJ_1711_KMP 求匹配位置
    POJ_2312_BFS:priority_queue -- Battle City
    POJ_1915_Double BFS Knight Moves
    POJ_3414_BFS pots
  • 原文地址:https://www.cnblogs.com/ybqjymy/p/12530508.html
Copyright © 2011-2022 走看看