当前位置:首页 > 测试测量 > 测试测量
[导读]虽然我们都知道要使用 Call Library Function Node去载入DLL,但一遇到指针(Pointer)还真不知道该怎么设定? [Answer]指针 (Pointer)是在C语言中很重要的一种资料型态,并且是被广泛的被使用,所以当要用LabVIEW去

虽然我们都知道要使用 Call Library Function Node去载入DLL,但一遇到指针(Pointer)还真不知道该怎么设定?

[Answer]

指针 (Pointer)是在C语言中很重要的一种资料型态,并且是被广泛的被使用,所以当要用LabVIEW去呼叫C/C++所开发的DLL时,一定会遇到指针的问题,接着我会以传递及接收指标这两个方向来说明。


一、传递指针到 DLL

①传递整数 (Integer)指标

如果以下是我们呼叫的函式

void ReturningValues??ByReference_Integer(int x, int y, int *sum);

我们要将资料传递到 *sum中,所以请在Data type栏位选择”Signed 32-bit Integer”,然后在Pass栏位选择”Pointer to Value.

②传递阵列 (Array)资料

我们以下列函式为例

int PassingParamters_ArrayOfIntegers (int x[], int len??gth);

我们要将资料传递到阵列,此时也要使用指标的方式来传,请你在 Type栏位选择”Array”,Data type栏位选择”Singed 32-bit Integer”,Array format栏位选择”Array Data Pointer”.

③传递字串(String)指标

以下列函式为例

int PassingParamters_String (char *str);

当我们要将资料传递到 *str中,请你在String format栏位选择”C String Pointer”

④传递结构(Struct)资料

以下例函式为例

void ReturningValues??ByReference_SimpleStruct (struct simpleStructCircle circle, struct simpleStructCircle *largerCircle);

如果是传递结构的话,只需要将原本结构中的内容依序传入即可,以本函式为例 ”circle” 中含有三个浮点数分别是 x, y, radius,所以只要依序宣告即可,但若是遇到结构指标,请你在 Type 栏位选择 ”Adapt to Type” , Data format 栏位选择”Handles by Value”,如下图所示。

二、从 DLL接收指标

①函式回传指标

如果函式程式码如下

int * ReturnAValue_PointerToInteger(void)

{

int *x = (int *) malloc(sizeof(int));

*x = 5;

return x;

}

所以我们可以知道函式本式回传整数指标,请你在 Type栏位选择” Numeric”,在Data type栏位选择”Signed Pointer-sized Integer”

②以Reference型式回传

我们以下列程式码为例

void ReturningValuesByReference_Integer (int x, int y, int *sum)
{
//sum is a pointer
*sum = x + y;
}

以上的配置方法是直接使用调用库函数节点来实现时需要做的工作。

如果我们采用dll调入生成VI的方式则不需要,因为labview已经给配置好了!

如下图:


这是一个通过dll自动生成的VI,里面也就是一个调用库函数节点的程序,很简单,但是参数已经给配置好了!

如下:




这两种不同的参数类型 在传递那个选项里不同,正如本文所述。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

NI提供的软件包经济省时,不仅帮助开发人员节省时间,还为创客提供了新的机遇

关键字: LabVIEW 自动化测试系统

强大的图形化编程工具使整个测试和测量过程的各个方面实现可视化

关键字: LabVIEW 图形化编程工具

万用表是一种可以测量多种项目的便携式仪表,在电子技术中主要用来测量电压、电流与电阻。在电子元器件选用中,它可用来粗略检测元器件的好坏或性能优劣

关键字: 指针 万用表

万用表又称为复用表、多用表、三用表、繁用表等,是电力电子等部门不可缺少的测量仪表,一般以测量电压、电流和电阻为主要目的。万用表按显示方式分为指针万用表和数字万用表

关键字: 指针 万用表 数字万用表

摘要:对于每一型新机试飞,或者是重大的研究性试飞和验证试飞,都必须实施遥测监控。现基于TTS(TextToSpeech)语音合成技术,结合飞行试验遥测监控系统的不足,利用TTS引擎在LabVIEW开发环境下设计并实现了遥...

关键字: 飞行试验遥测监控系统 TTS LabVIEW

字符串是C语言中最基础的概念,也是最常被用到的。在嵌入式开发中,我们经常要将一些字符串通过串口显示到串口助手或调试终端上,作为信息提示,以便让我们了解程序的运行情况;或者是将一些常量的值转为字符串,来显示到液晶等显示设备...

关键字: 字符串 指针 C 语言

在科研以及应用软件领域,LabVIEW和MATLAB作为比较常用的2款工具,相信很多人都用过吧。简单的概括一下,LabVIEW侧重测试测量和数据采集,MATLAB侧重科学计算和数据分析。

关键字: LabVIEW matlab 混合编程

摘要:利用单片机和虚拟仪器LabVIEW在PC端设计了温湿度测量及控制系统,用于温湿度数据监测。该系统上位机为PC端监控界面,下位机为单片机,单片机采集温湿度数据,并将采集到的数据通过串口发送给监控界面进行监测和管理。该...

关键字: DHT11 LabVIEW 单片机

摘要:当前闭环步进电机在自动化设备中的应用越来越广泛,故为了进一步满足闭环步进电机的应用需求,采用LabVIEW上位机+运动控制卡+驱动器模块的控制方案进行了多轴运动系统的设计,通过设计的上位机软件实现闭环步进电机的实时...

关键字: 闭环步进电机 精度测试 LabVIEW

指针使得 C 语言能够更高效地实现对计算机底层硬件的操作,而计算机硬件的操作很大程度上依赖地址,指针便提供了一种对地址操作的方法,在一定意义上,指针是c语言的精髓,所以一定要耐心看完。指针对于很多c语言初学者来说可能难以...

关键字: 指针 C 语言 计算机
关闭
关闭