LabVIEW调用DLL动态链接库
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动态链接库相关推荐
- LabVIEW系列——LabVIEW下调用DLL动态链接库
LabVIEW下调用DLL动态链接库 目录 一.需求场景 二.所需文件 三.调用步骤 注意 需求场景: 使用其他没有提供LabVIEW接口vi库,但是提供了DLL动态链接库文件的板卡. 调用其他应用程 ...
- labview调用DLL
<link href="https://csdnimg.cn/public/favicon.ico" rel="SHORTCUT ICON"> &l ...
- python库_python使用ctypes库调用DLL动态链接库_python
最近要使用python调用C++编译生成的DLL动态链接库,因此学习了一下ctypes库的基本使用. ctypes是一个用于Python的外部函数库,它提供C兼容的数据类型,并允许在DLL或共享库中调 ...
- LabVIEW调用DLL时出现异常0xc0000005代码
LabVIEW调用DLL时出现异常0xc0000005代码 当调用本地DLL时,LabVIEW崩溃,并且收到一条错误消息,说明发生了内存访问冲突(异常代码:0xc0000005). 将LabVIEW版 ...
- python调用dll函数指针_python使用ctypes库调用DLL动态链接库
最近要使用python调用C++编译生成的DLL动态链接库,因此学习了一下ctypes库的基本使用. ctypes是一个用于Python的外部函数库,它提供C兼容的数据类型,并允许在DLL或共享库中调 ...
- VS2013环境生成和调用DLL动态链接库
创建动态库方法: 创建动态库是生成 .dll .lib 两个个文件 文件 -> 新建 -> 项目 -> win32控制台应用程序 项目名称:DLLGenerator 应用程序类型:D ...
- c++调用dll动态链接库历程
Win32类型的 dll工程: App.h/*************************** #pragma once #define extern_c_declspec extern &quo ...
- python 动态链接库_Python调用dll动态链接库(下)
本部课程共分5章,涵盖了同步异步IO.线程池.动态链接库.注入DLL.拦截API五个主题.学习后可以彻底俯视众多windows初级程序员,尤其是众多专业工具的使用,如:dumpbin.debugvie ...
- VS2019-C++创建和调用DLL动态链接库(傻瓜式教程)
前言:查了好久好久网上的资料C++调用动态链接库,试了好多方法(直接创建DLL.空项目创建的)都多多少少有些问题,最后自己不断摸索着成功了,还是很开心的,接下来把最清晰的步骤分享给大家(C++新人,有 ...
最新文章
- JS~对img标签进行优化,使用onerror进行默认图像显示
- 从零开始的AI·机器学习の基本概念
- Ubuntu | 使用 SecureCRT 远程登录 Ubuntu
- 使用Ubuntu的公用文件夹轻松地在计算机之间共享文件
- 用php写一个可以抽取随机数的工具一次只抽四个怎么实现?_面试了一个32岁的程序员,场面一度很尴尬。...
- FXRibbon 1.2版发布
- 由alpha matte生成trimap
- 5.3使用自定议的测试数据库文件
- linux总线驱动程序,Linux驱动程序中的platform总线详解
- python response[200_python说httpresponse代码是200,但服务器说是301
- java对音频文件的频谱分析
- 学生管理系统——数据库表设计
- android toast 自定义view,分享Android中Toast的自定义使用
- syslinux和grub引导linux,在Arch上使用Syslinux替代GRUB
- ethtool 开启网卡_技术|如何使用 ethtool 命令管理以太网卡
- 多元微积分_向量函数偏导
- c# 无法检索解密密钥_使用C#检索Windows产品密钥
- unity退出,从新开始,暂停
- 高清动图如何制作 GIF表情包制作方法
- vue日历,阳历, 阴历,周,年,月,下拉选择,引用element组件,
热门文章
- 虚拟机ubuntu占用CPU过高
- 高通---ChIP-Seq数据的Peak calling以及visualization
- OJ每日一练——晶晶赴约会
- 数据挖掘竞赛——糖尿病遗传风险检测挑战赛Baseline
- java运用itextpdf实现根据模板生成合同并返回网络路径,供用户查看
- TFS2010-团队项目--(TF250044,TF218027) 权限不足问题解决方案
- 文件在回收站被清空要怎么恢复回来?
- 【STM32标准库】【自制库】0.96寸OLED显示屏(SSD1306)(3)显示字母和数字,汉字
- 2020云栖大会智慧出行专场:聚焦高精地图/算法、智能模型、自动驾驶、AR导航...
- 网页子窗口iframe的用法