【LabVIEW】调用库函数(传入参数、返回值数据类型配置) 您所在的位置:网站首页 jacoco覆盖率测试 【LabVIEW】调用库函数(传入参数、返回值数据类型配置)

【LabVIEW】调用库函数(传入参数、返回值数据类型配置)

2023-12-31 20:53| 来源: 网络整理| 查看: 265

一、调用库函数节点

这个知识点按照这一篇教程学习比较好:https://blog.csdn.net/where187/article/details/82388624

几个需要注意的点:

1、调用:

互连接口——库与可执行程序——调用库函数节点

2、在编写动态库函数时,要在同名头文件里函数声明处加上extern "C",如:

extern "C" _declspec(dllexport) void ArrayFloorId(double *input, int inputLength, int *output);

否则在画程序图调用库函数进行配置的时候,函数名会加载错误(出现问号、@等其他字符)。

3、先获取数组大小再进行数组初始化,否则连线错误。

4、配置

线程设置可以任意,调用规范必须设置为C。

函数各参数的数据类型一定要配置正确,否则程序会出错。

5、技巧

是在对应的参数端口那里,右键,新建常量或者输入控件,然后再在新建出来的常量或者输入控件上面修改。因为新建出来的数据类型肯定是对的。

 

 

二、传入参数、返回值数据类型配置

1、传参为指针

void test(int x, int y, int *sum); //函数接受一个指向整数的指针

 

 

2、传参为数组

int test(int x, int y, int sum[], int length); //函数接受一个整数数组

 

 

3、传参为char类型int test(int x, int y, char *sum); //函数接受字符串

 

4、传递结构体和指向结构体的指针

void test(int x, int y, char *sum,struct simpleStructCircle *largerCircle);  //任意结构体

 

5、返回指针两种方式:

(1)作为返回值

int * test(void){     int *x = (int *) malloc(sizeof(int));     *x = 5;     return x;}因为LabVIEW调用库函数节点只允许返回整数、字符串和Void类型,所以必须将指针作为表示内存地址的整数接受,并手动解引用指针以获得其值。

(2)Reference 指针通过函数的形参返回void test(int x, int y, int *sum){     //sum is a pointer     *sum = x + y;}

同理,返回float类型数据:

void test(float& Vesionnum){   Vesionnum = 1.32;}

 

6、关于返回值为BOOL的情况

要知道的是,在C里面没有定义布尔是基础类型,在C++里面才有专门的布尔类型bool(字长跟BYTE相同)。C++里面虽然有,但在实际开发中,发现大部分老的程序里在编写动态库的时候还是习惯自己定义BOOL。

#define FALSE   0#define TRUE    1

typedef long BOOL;//或者typedef int BOOL;

返回时:return FALSE;

在这种情况下,调用库函数节点返回类型就按照 typedef 后的类型来选择(long或int等)。

 

来源:https://forums.ni.com/t5/Developer-Center-Resources/Passing-and-Receiving-Pointers-with-C-C-DLLs-from-LabVIEW/ta-p/3522714?profile.language=zh-CN

 

其他可供参考:

https://blog.csdn.net/mysolisoft/article/details/111056587



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

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