除使用静态链接的子VI外,还可动态地加载VI。静态链接的子VI是指在VI调用程序的程序框图上直接放置的子VI。它与VI调用程序同时加载。

与静态链接的子VI不同,动态加载VI只有在打开VI引用时VI的调用程序才会将其加载。如果VI调用程序较大,采用动态加载VI的方式可以节省加载时间和内存,这是因为在调用程序需要运行该VI以前无需将其加载,在操作结束后又可将其从内存中释放。VI调用配置对话框可用来配置何时加载子VI

引用节点调用和严格类型VI引用句柄调用

通过引用调用节点和开始异步调用节点都用于动态调用VI,节点要调用的子VI通过引用输入端指定。但是,开始异步调用节点通过异步方式调用子VI,数据流在调用方VI中连续。

通过引用调用节点首先需要有一个严格类型VI引用句柄存在。严格类型的VI引用不仅指向被调用的VI,还指定了VI的连线板。但并不是和VI建立永久连接,也不包含如名称、位置等VI的其他信息。引用节点调用的输入和输出连接和其他VI的连接方法相同。

下图显示引用节点调用如何动态调用“频率响应”VI。引用节点调用打开VI引用关闭VI引用需要的函数与属性节点调用节点所使用的函数相似。

指向严格类型引用句柄的VI仅提供连线板信息。引用句柄和VI并不是永久绑定。特别注意不要混淆选择VI连线板与获取VI引用句柄这两项不同的操作。使用“打开VI引用”函数的VI路径输入端可以指定某个VI。