LabVIEW调用动态链接库DLL

简介: LabVIEW调用动态链接库DLL

LabVIEW调用动态链接库DLL


要调用DLL,首先必须确定该库是C/ C ++ DLL还是Microsoft .NET Assembly / .NET DLL。


若要确定具有哪种类型的库,可以检查DLL文件的可移植可执行(PE)标头。


DLL是C/ C ++ DLL:


1.       如果没有头文件,请查找头文件(* .h)或函数原型定义,请跳至步骤4。


2.       确定要调用的功能。请注意,函数的参数是否包含原始数据类型参数(例如int,char,double等),或者它们是否包含复杂的数据类型(例如struct,数组或向量)。


3.       如果函数不包含任何复杂的数据类型,并且具有头文件(*.h),则可以使用导入共享库向导创建一个包含该头文件中的函数的LabVIEW库。可以在工具»导入»共享库(.dll)...中找到该选项。继续执行向导。


4.       如果没有头文件,则需要使用“调用库功能节点”以及.DLL的正确文档。下图显示了调用库功能节点在托盘中的位置:


d56c59548edcde32064705f86b0e13d1.png


5.       双击“Call LibraryFunction Node”以配置该节点。在配置窗口的“功能”选项卡上,输入DLL的路径,然后选择要调用的功能。


6.       如果要调用的函数包含复杂的数据类型,则需要在“调用库函数”节点的配置对话框中手动定义函数原型(如果DLL已使用类型库编译,则参数数据和返回类型将自动定义)。导航到配置窗口中的“参数”选项卡。在这里,将添加参数并修改返回类型,直到窗口底部的函数原型与DLL的函数定义匹配为止。

e9c482712511b450efb7ca8dd2f24665.png



DLL是.NET程序集:


为了在LabVIEW中使用.NET程序集,只需使用.NET面板(Connectivity».NET )查找所有可用功能。


首先使用构造器节点来实例化.NET程序集中的类。可以通过双击“构造器”节点以打开“选择.NET构造器”对话框来完成。

09b4fd5cd4d069ae357a035f4068441a.png



通过简单地将类引用从构造函数节点连接到属性或调用节点,即可使用属性和调用节点来访问类的属性和方法。如以下VI片段所示。


126b1021607e7d5eb2beba901113f27d.png



注意:该图像是LabVIEW片段,其中包含可在项目中重复使用的LabVIEW代码。要使用代码段,请右键单击图像,将其保存到计算机,然后将文件拖到LabVIEW图表上。


.NET DLL也称为.NET程序集,在.NET编程中很有用。.NET DLL使用公共语言运行库(CLR)和.NETFramework来管理DLL中的功能。


请注意,如果复杂数据类型是具有多个原始数据类型(int,double,char)的结构,则可以使用基于C的语言创建包装DLL,以简化函数调用。


C / C ++结构并不总是与LabVIEW数据类型直接相关,并且包装DLL可以适当地提取复杂结构的内容并将其转换为原始术语。例如,正在使用的DLL利用C中的结构,其中包含char*(字符串或字符数组)。包装器DLL可以包含带有char*参数的包装器函数,该参数将char*放入结构中,并依次调用原始DLL。在LabVIEW中,可以调用包装DLL函数。或者,如果具有DLL源代码,则可以直接修改DLL,以便它采用char*而不是结构。


LabVIEW示例查找器提供了完整且实用的示例,说明了如何在LabVIEW中正确调用外部代码。查看帮助>>查找示例>>与外部应用程序通信


需要说明的是,上述的例程和文档,都是可以下载的,双击即可打开,其中压缩文件是可以采用粘贴复制的方式,拷贝到硬盘上。这不是图片,各位小伙伴看到后尝试一下,这个问题就不用加微信咨询了。有关LabVIEW编程、LabVIEW开发等相关项目,可联系们。附件中的资料这里无法上传,可去公司网站搜索下载。


LabVIEW程序,如下附件所示。

相关文章
|
数据采集 安全 测试技术
LabVIEW调用DLL时需注意的问题
LabVIEW调用DLL时需注意的问题
604 0
|
存储 缓存 监控
【嵌入式SD NAND】基于FATFS/Littlefs文件系统的日志框架实现
综上所述,构建一个基于FATFS/Littlefs文件系统的日志框架需要对文件系统的操作有深入理解,并以此为基础设计一套完整的日志处理机制。这样的框架不仅能够确保日志数据的完整性和系统的鲁棒性,同时还能够满足嵌入式系统对于性能和资源使用的严格要求。
535 4
|
Ubuntu 安全 网络协议
|
SQL 缓存 关系型数据库
SqlAlchemy 2.0 中文文档(三十五)(4)
SqlAlchemy 2.0 中文文档(三十五)
158 1
素颜简约的个人导航网站源码
素颜简约的个人导航网站源码
1040 0
素颜简约的个人导航网站源码
|
存储 Kubernetes 监控
使用Kubernetes进行容器编排:技术详解与实践
【5月更文挑战第16天】Kubernetes,简称K8s,是开源容器编排系统,用于自动化部署、扩展和管理容器化应用。核心概念包括节点、Pod(最小部署单元)、服务、标签和副本集。其特点有高可用性、可扩展性、自动化和可移植性。实践使用涉及安装配置集群、编写YAML部署清单、应用部署、监控管理和扩展更新。Kubernetes帮助提升应用的可用性、可扩展性和可移植性。
1100 3
|
数据挖掘 测试技术 网络安全
LabVIEW开发卫星测试平台
LabVIEW开发卫星测试平台
116 3
|
开发框架 .NET 开发工具
LabVIEW加载.NET程序集
LabVIEW加载.NET程序集
210 1
|
异构计算 内存技术
FPGA进阶(3):SDRAM读写控制器的设计与验证(一)
FPGA进阶(3):SDRAM读写控制器的设计与验证
382 0
|
传感器 数据采集
LabVIEW开发航天器动力学与控制仿真系统
LabVIEW开发航天器动力学与控制仿真系统
104 0