Labview 入坑(2) 您所在的位置:网站首页 labview库函数 Labview 入坑(2)

Labview 入坑(2)

2023-09-07 10:56| 来源: 网络整理| 查看: 265

一、调用C++库

原本比较熟悉Qt 想用Qt 创建个dll给Labview,但是好像测试时,没有用VS创建出来的dll导入那么顺利Qt Creator创建出来的是类,感觉labview对C++类好像导入有点问题,至少我导入时是识别不到类的. 1、记录下创建Qt库的过程,我这边是32位的labview 所以选择32位的dll 在这里插入图片描述 在这里插入图片描述在这里插入图片描述 默认的dll文件会创建一个类出来,这个类导入labview 是识别不出来的,需要将类去除直接修改成函数去调用。 在这里插入图片描述 cpp修改成入下

#include "qdllcore.h" int QSumInt(int num1, int num2) { return num1 + num2; }

.h文件修改如下

#ifndef QDLLCORE_H #define QDLLCORE_H #include "qdllcore_global.h" QDLLCORE_EXPORT int QSumInt(int num1, int num2); #endif // QDLLCORE_H

然后编译生成dll文件在debug里,出错不需要管(因为dll没有法直接运行) 在这里插入图片描述 测试dll 找个例子拖动2个输入数值控件一个输出测试以下加减法 在这里插入图片描述 拖成这个样子

在这里插入图片描述 更换箭头工具双击进入后面板导入对应的库,空白区域右键拖入 在这里插入图片描述 拖入后双击调用函数节点,然后选择对应的dll文件,识别完修改对应的函数输入输出映射 在这里插入图片描述 这个参数需要手动的选择 在这里插入图片描述 在这里插入图片描述 选择完点击确定就剩下连接线了 在这里插入图片描述 然后点击运行就成功了。 在这里插入图片描述

二、用同样的方法测试下VS下创建的C++库(连线就省略了)

C++库调用都一样,就是VS创建动态dll有区别 在这里插入图片描述 创建完后生成默认的几个文件 在这里插入图片描述 自己添加个.h和.cpp文件,敲入代码 .h文件

extern "C" __declspec(dllexport) int SumInt(int num1, int num2);

.cpp文件

#include "pch.h" #include "dllapi.h" int SumInt(int num1,int num2) { return num1 + num2; }

在这里插入图片描述 在这里插入图片描述 编译出dll文件完和Qt加载dll一样创建个空白VI,拖动对应的空间,最后加载dll 反正VS创建完没有乱码,感觉比较舒服

在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 运行也正常

三、C# 的.net dll

看labview 官网是说对.net 支持会比较好。所以就搞个.net库来试试。 一样新建.net的dll文件

在这里插入图片描述 创建.net库工程,名字自行命名。没有头文件比较简单 搞个方法放进去

public class DllApi { public double add(double a, double b) { return a + b; } }

在这里插入图片描述 编译出dll报错无需理会 在这里插入图片描述 拖入面板还是一样的控件 在这里插入图片描述 转到背板后,拖动出对应的节点,因为C#可以导入类,所以还需要从类里面导入方法。 在这里插入图片描述 再对应的拖入方法 在这里插入图片描述 在这里插入图片描述 然后去方法那边选择方法 在这里插入图片描述 连接对应的连接线运行,和前面两个都一样,但是C#感觉支持比较舒服,还能导入控件什么的 在这里插入图片描述

四、总结 VS 创建出来的C++ dll 和QT 创建出来的C++dll VS兼容比较好,函数名称可以看得清楚(预计是QT的编码格式问题),但是两个函数都是正常使用的,.net 创建的dll 很好的兼容,而且自定义控件也是可以拉入的,也可以导入C#的类,和属性。整体兼容比较舒服


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有