如何在LabVIEW中动态加载和卸载DLL

更新 Jan 4, 2024

适用于

软件

  • LabVIEW

问题详述

我想要我的DLL仅在被调用的时候才载入内存中,并且在程序结束时卸载掉它,这可行吗?

我想避免在我的代码中包含未使用的库。

解决方案

在LabVIEW 8.2之后,动态链接库(后文称为DLL)可以动态加载和卸载。 LabVIEW 2017帮助:调用库函数节点描述了该过程。总之,要动态加载DLL,需要在“调用库函数”对话框中选中“在程序框图中指定路径(Specify path on diagram选项。双击“调用库函数”节点(Call Library Function node)可以打开该对话框,如下图所示。

选中“ 在程序框图中指定路径参数后,“调用库函数”上将显示名为路径输入path in)的接线端。这个接线端用于接收你想要调用的DLL的路径。执行该调用库函数时,指定的DLL就会被调入内存中,如下图所示。


LabVIEW 2017帮助:调用库函数对话框/还指出路径输入可用于从内存中卸载以前引用的库函数。为此,将空路径或无效路径连接到输入中的路径 ,LabVIEW将从内存中卸载先前由节点引用的任何库。想要这样做的话,我们要将一个空路径或者非法路径接入路径输入的输入端,LabVIEW就会从内存中卸载掉该节点之前引用的任何库函数。下面的图片给出了一个范例,一次调用时加载DLL,布尔值卸载DLL,同时停止整个代码。条件结构中为假的情况,没有显示出,有定时但没有代码。

如果一个空路径或者非法路径被输入给了一个不同的调用库函数节点,而不是你最开始调用DLL的那个节点,则不会将DLL从内存中卸载。下面的图片给出了一个错误示范。