一、dll文件的创建

dll文件的创建,我使用的是VS 2017,以此为例介绍:

1、新建一个dll项目,选择Visual c++》Windows 桌面》动态链接库(DLL)


然后会得到如下图所示的Dll.cpp文件

还需要加入一个Dll1.h文件,在右侧“解决方案资源管理器”右键“头文件”,添加》新建项,在对话框中选择c++头文件,修改头文件文件名后点击确定


会得到一个空的头文件文件

其中#pragma once 代表这个头文件只被编译一次,与

#ifndef _DELL1_H
#define _DELL1_H#endif

作用类似。

2、编写程序

  1. 在头文件写声明,值得注意的是,这里需要使用__declspec(dllexport)关键字修饰,表示这个函数是输出的函数可以在外部使用,这里的 extern “C” 表示的是用c的编译器来编译这个函数,这里的C是大写的要注意,这样编译出来的函数名就是我们希望的,否则就会产生不一样函数名。
extern "C" __declspec(dllexport) UINT8 choose(double *a, UINT8 *b);
  1. 去源文件Dll1.cpp定义函数体,别忘记在开头把Dll1.h头文件包括进来。
#include "stdafx.h"
#include "Dll1.h"double abs(double a)
{return a > 0 ? a : -a;
}extern "C" __declspec(dllexport) UINT8 choose( double *a,UINT8 *b)
{double T = *a;double To = *(a + 1);double Tb = *(a + 2);double Tt = *(a + 2);if (Tb < T | Tt < T){if (abs(Tb - Tt) < 3){*b = 1;*(b + 1) = 1;}else{*b = 0;*(b + 1) = 0;}}else{*b = 0;*(b + 1) = 0;}return 1;}
  1. 生成dll,在“生成”》生成解决方案,如果没报错的话就能生成dll文件,实际生成的时候,如果之前这个dll文件已经zailabview使用了,那么生成的时候可能会报错(即使是复制出去的dll)关闭labview重新尝试。

  2. 之后会在羡慕文件夹的“同级目录”下的Debug文件夹出现编译好的dll文件和lib文件,不是项目文件夹下的那个。

3、在LabVIEW中使用dll

在labview中使用dll很简单只需要后面板上右键》互连接口》库与可执行…》调用函数库…

然后配置“调用库函数节点”,选择好路径和选用的函数(我这里是之前配置的,用的是Dell2.dll库)

再去参数里增加返回值和输入参数,值得注意的是,这里的数据类型必须要匹配dll库里的数据类型不然会出现各种各样的问题,另外如果传入的是一个数组的函数名(即数组首地址)那么这里需要选用的类型是数组,数组的类型按照你的要求选择但是必须和dll中的一样,数组格式为数组数据指针,这样可以通过指针输出多个返回值(但是每隔返回值数据类型不同怎么使用不清楚,之后解决了再补)

然后接好输入输出的线就可以使用了,如果你的函数或者输入输出类型有问题就会报错,检查输入输出的数据类型后再尝试,另外如果没有给数组赋初值也会出错。

这样运行就会报错

但是赋初值之后就不会报错而是正常运行

LabVIEW调用库函数节点相关推荐

  1. LabVIEW调用DLL动态链接库

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

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

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

  3. labview调用DLL

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

  4. labview调用外部仪器设备案例一(标签打印机)

    labview调用BarTender案例一(斑马标签打印机) 第一章 调用BarTender标签模板制作软件打印标签 文章目录 labview调用BarTender案例一(斑马标签打印机) 第一章 调 ...

  5. Python+selenium 自动化-调用dom节点的click()监听事件,强力操作节点,穿透元素进行点击,节点被遮挡不可点击解决方法

    非常简单!只需要两步: 第一步,我先获取 dom 节点. 第二步,然后通过 driver.execute_script() 方法调用 dom 节点的 click() 监听事件. a = driver. ...

  6. 9.11 strace:跟踪进程的系统调用 、ltrace:跟踪进程调用库函数

    strace 是Linux环境下的一款程序调试工具,用于检查一个应用程序所使用的系统调用以及它所接收的系统信息.strace会追踪程序运行时的整个生命周期,输出每一个系统调用的名字.参数.返回值和执行 ...

  7. LINUX ltrace命令-用来跟踪进程调用库函数的情况学习

    参考链接: http://www.bluestep.cc/linux-ltrace%E5%91%BD%E4%BB%A4-%E7%94%A8%E6%9D%A5%E8%B7%9F%E8%B8%AA%E8% ...

  8. C语言不调用库函数画直线

    昨天写了一个代码,使用C语言画三角形,既然写了那个,那就继续画一条直线,这个也很有意思. C语言不调用库函数画一个三角形 直线的方程是 如下图所示 - - 斜率的范围 (-∞,+∞) 既然知道公式了, ...

  9. c语言内置画直线函数库,C语言不调用库函数画直线

    昨天写了一个代码,使用C语言画三角形,既然写了那个,那就继续画一条直线,这个也很有意思. C语言不调用库函数画一个三角形 直线的方程是 如下图所示 - - 斜率的范围 (-∞,+∞) 既然知道公式了, ...

最新文章

  1. R语言return返回值的形式实战
  2. go语言培训班多少钱
  3. 服务器write后客户端响应,客户端解析服务器响应的multipart/form-data数据
  4. android 中 Proguard 和JNI 相关
  5. Pyechart:30分钟学会pyecharts数据可视化
  6. mysql 排序速度_MySQL排序速度慢而且可能不稳定
  7. python库管理_Python中管理数据库
  8. 从输入URL到页面渲染完成 -戈多编程
  9. 今日头条最新视频解析方法
  10. 游戏开发完整学习路线,都在这里了
  11. DEMAC电机驱动型电缆卷筒—上海班品智能
  12. UESTC 1639 云中谁寄锦书来?雁字回时,月满西楼。 Dijkstra拓展
  13. 常见荧光染料修饰多种基团及其激发和 发射波长数据一览数据
  14. HTML如何实现滚动文字
  15. linux密码是什么加密方式,Linux系统的几种加密
  16. Redis:字符串INCR、INCRBY、INCRBYFLOAT、DECR、DECRBY命令介绍
  17. 一文教你看懂Fama-French三因子模型
  18. 有赞 java_响应式架构与 RxJava 在有赞零售的实践
  19. vscode插件turbo console log快捷键无法使用
  20. 本地ISO文件作为YUM源

热门文章

  1. STOP 0x00000051(0xC0000008,0x00000000,0xE101B008,0x108FBC4)解决方法
  2. Linux上网记录搽除,Windows 7上网痕迹快速清除的技巧
  3. java 3d 配置_Java3D的环境配置
  4. 高等几何——射影变换4
  5. 不同类型的论文查重率是多少?
  6. 黑平台winterSnow Forex搞PUA 诱惑受害者投资外汇导致36万美金无法出金
  7. 基于 P2P 技术的 Android 局域网内设备通信实践
  8. 做产品开发之前,如何准确的找到意向用户群体的痛点
  9. 关于阿里矢量图标彩色icon使用
  10. Stochastic Screen Space Reflections(二):SSR