在介绍本章节之前,小伙伴有没有想过这个问题,labview语言怎样和C语言通信,假设一个设备的底层驱动是C语言写的,labview就没有办法控制该设备吗?但是labveiw作为测试测量而生的软件,显然不能控制想法是不成立的,这就涉及到labview调用DLL文件知识,这部分内容在测试测量领域中广泛应用,也是labview工程师必备技能之一。

1,什么是DLL

DLL(动态链接库)文件是 Dynamic Link Library 的缩写形式,是一种允许程序共享 执行特殊任务所必需的代码和其他资源的可执行文件,其多数情况下是带有 DLL 扩展名的 文件。

2,labview调用DLL文件

LabVIEW 支持通过调用 DLL 文件的方式与其它编程语言混合使用。 比如在实际的工程项目中,用户可以用 C++ 语言实现软件的运算部分,并把这些功能构建在 DLL 文件中,然后再使用 LabVIEW 编写程序的界面部分,并通过调用编写好的 DLL 来调用运算部分的功能。

Labview程序面板在互联接口-库与可执行程序-调用库函数节点。

labview调用Python之后如何打包_labview

   将已有的dll文件加载到库名/路径对话框中,通常情况下, 除非使用的动态链接库是多线程安全的, 选择 Run in any thread方式;否则必须选择 Run in UI thread 方式。判断一个动态链接库是不是多线程安全的,需通过以下方法: 如果一个动态链接库的文档中没有明确说明它是多线程安全的, 那么就要当作是非多线程安全的; 在可以看到动态链接库源代码的条件下, 如果代码中存在全局变量、静态变量或者代码中看不到有 lock 一类的操作,那么这个动态链接库也就肯定不是多线程安全的。

labview调用Python之后如何打包_动态链接库_02

3,labview与C 之间的数据类型对应关系

  Labview语言和C语言数据类型有一个对应关系,在使用过程中注意数据类型的转化,具体关系可以查看NI范例查找器中输入DLL

labview调用Python之后如何打包_数据类型_03

4,自动导入dll文件

   自动导入共享库dll,点击工具-导入-共享dll,这时候还必须要.h头文件,才能自动生成,使用生成的VI函数,即可当作驱动函数使用。

labview调用Python之后如何打包_动态链接库_04