LabVIEW调用DLL动态链接库

有些数据运算比如多个数组之间的处理、雨流计数法、卡尔曼滤波使用labview这样的图形编程语言实在过于麻烦,实现不难但有一定的逻辑复杂度,倒不如用C++或者matlab来实现,之后生成DLL供LabVIEW调用。

示例一

通过调用DLL实现数组求和。输入一个10个元素的数组,返回全部元素之和。

1.生成DLL

VS中选择创建动态链接库项目

在头文件和源文件文件夹分别创建相应的.h .cpp文件

在test.h中添加函数声明

extern "C" __declspec(dllexport) int qiuhe(int raw[10]);

在test.cpp中写函数体,注意要包含这两个头文件

#include "pch.h"//---
#include "test.h"//---extern "C" __declspec(dllexport) int qiuhe(int raw[10])
{int add = 0;for (int i = 0; i < 10; i++)add += raw[i];return add;
}

点击生成解决方案就得到DLL文件。无法直接运行或者调试,可以间接使用。

2.写LabVIEW程序

程序框图页面——互联接口——库与可执行程序——调用库函数节点

选择刚刚生成的DLL文件,并选择函数名。

配置形参和返回值,必须和函数原型一模一样,否则运行有误或者无反应。设置返回值为I32数值。添加一个输入,配置为I32一维数组。


连接相关的组件。

前面板输入相关元素的值,并点击运行,出现正确的结果。

示例二

如何解决返回类型没有数组、指针的问题?如果针对一个数组处理后,想要返回整个数组,但是发现返回类型选项中只有空void、数值和字符串。我以一个将数组中元素全部向后位移一位的例子说明。
其实很简单,调用库函数节点默认会“返回”输入的所有形参,那我们只要获取到经过运算后的数组即可。当然,如果设计到多个数组运算或者其他较复杂的运算,你也可以自己在添加一个符合条件的形参,用于保存想要返回的计算结果,做间接的返回数组。

位移函数:

extern "C" __declspec(dllexport) void move(int raw[10])//间接返回raw[10]
{int temp = raw[0];for (int i = 0; i < 9; i++){raw[i] = raw[i + 1];}raw[9] = temp;
}

labview:

点击运行后发现移位正常

LabVIEW调用DLL动态链接库相关推荐

  1. LabVIEW系列——LabVIEW下调用DLL动态链接库

    LabVIEW下调用DLL动态链接库 目录 一.需求场景 二.所需文件 三.调用步骤 注意 需求场景: 使用其他没有提供LabVIEW接口vi库,但是提供了DLL动态链接库文件的板卡. 调用其他应用程 ...

  2. labview调用DLL

    <link href="https://csdnimg.cn/public/favicon.ico" rel="SHORTCUT ICON"> &l ...

  3. python库_python使用ctypes库调用DLL动态链接库_python

    最近要使用python调用C++编译生成的DLL动态链接库,因此学习了一下ctypes库的基本使用. ctypes是一个用于Python的外部函数库,它提供C兼容的数据类型,并允许在DLL或共享库中调 ...

  4. LabVIEW调用DLL时出现异常0xc0000005代码

    LabVIEW调用DLL时出现异常0xc0000005代码 当调用本地DLL时,LabVIEW崩溃,并且收到一条错误消息,说明发生了内存访问冲突(异常代码:0xc0000005). 将LabVIEW版 ...

  5. python调用dll函数指针_python使用ctypes库调用DLL动态链接库

    最近要使用python调用C++编译生成的DLL动态链接库,因此学习了一下ctypes库的基本使用. ctypes是一个用于Python的外部函数库,它提供C兼容的数据类型,并允许在DLL或共享库中调 ...

  6. VS2013环境生成和调用DLL动态链接库

    创建动态库方法: 创建动态库是生成 .dll .lib 两个个文件 文件 -> 新建 -> 项目 -> win32控制台应用程序 项目名称:DLLGenerator 应用程序类型:D ...

  7. c++调用dll动态链接库历程

    Win32类型的 dll工程: App.h/*************************** #pragma once #define extern_c_declspec extern &quo ...

  8. python 动态链接库_Python调用dll动态链接库(下)

    本部课程共分5章,涵盖了同步异步IO.线程池.动态链接库.注入DLL.拦截API五个主题.学习后可以彻底俯视众多windows初级程序员,尤其是众多专业工具的使用,如:dumpbin.debugvie ...

  9. VS2019-C++创建和调用DLL动态链接库(傻瓜式教程)

    前言:查了好久好久网上的资料C++调用动态链接库,试了好多方法(直接创建DLL.空项目创建的)都多多少少有些问题,最后自己不断摸索着成功了,还是很开心的,接下来把最清晰的步骤分享给大家(C++新人,有 ...

最新文章

  1. JS~对img标签进行优化,使用onerror进行默认图像显示
  2. 从零开始的AI·机器学习の基本概念
  3. Ubuntu | 使用 SecureCRT 远程登录 Ubuntu
  4. 使用Ubuntu的公用文件夹轻松地在计算机之间共享文件
  5. 用php写一个可以抽取随机数的工具一次只抽四个怎么实现?_面试了一个32岁的程序员,场面一度很尴尬。...
  6. FXRibbon 1.2版发布
  7. 由alpha matte生成trimap
  8. 5.3使用自定议的测试数据库文件
  9. linux总线驱动程序,Linux驱动程序中的platform总线详解
  10. python response[200_python说httpresponse代码是200,但服务器说是301
  11. java对音频文件的频谱分析
  12. 学生管理系统——数据库表设计
  13. android toast 自定义view,分享Android中Toast的自定义使用
  14. syslinux和grub引导linux,在Arch上使用Syslinux替代GRUB
  15. ethtool 开启网卡_技术|如何使用 ethtool 命令管理以太网卡
  16. 多元微积分_向量函数偏导
  17. c# 无法检索解密密钥_使用C#检索Windows产品密钥
  18. unity退出,从新开始,暂停
  19. 高清动图如何制作 GIF表情包制作方法
  20. vue日历,阳历, 阴历,周,年,月,下拉选择,引用element组件,

热门文章

  1. 虚拟机ubuntu占用CPU过高
  2. 高通---ChIP-Seq数据的Peak calling以及visualization
  3. OJ每日一练——晶晶赴约会
  4. 数据挖掘竞赛——糖尿病遗传风险检测挑战赛Baseline
  5. java运用itextpdf实现根据模板生成合同并返回网络路径,供用户查看
  6. TFS2010-团队项目--(TF250044,TF218027) 权限不足问题解决方案
  7. 文件在回收站被清空要怎么恢复回来?
  8. 【STM32标准库】【自制库】0.96寸OLED显示屏(SSD1306)(3)显示字母和数字,汉字
  9. 2020云栖大会智慧出行专场:聚焦高精地图/算法、智能模型、自动驾驶、AR导航...
  10. 网页子窗口iframe的用法