这是一个晦涩难懂的周五早上问题:
在LabVIEW中是否可以在不将整个VI加载到内存的情况下获取VI的被调用者?例如,通过从二进制文件中读取静态信息?
谢谢
那么有私有/脚本方法 App。从文件中读取链接器信息,我认为这不会将 VI 加载到内存中,有关更多信息,请查看LabVIEW wiki (目前离线,这里是链接器方法上的Google 缓存页面)页面。
链接器方法将返回 VI 的所有信息及其外部需求(VI、DLL、CHM 等)。
吨
不,我不相信。当您打开对顶层 VI 的引用时,它将被加载到内存中。这甚至在您有机会查询它的被调用者之前。
顿的回答是正确的。提到的方法是应用程序实例方法而不是 VI 参考方法。您将相关 VI 的路径提供给该方法,然后它将解析 VI 结构并提取所有相关的链接器信息,而无需将 VI 本身加载到内存中(显然它会将文件中的信息读入内存以进行解析它,但它不会加载/实例化 VI 本身)。
然而,该节点的问题在于它是私有的,因为它过去已更改其接口,并且将来可能会在没有警告的情况下再次这样做。甚至在 7.0 和 7.1 左右之间也出现过这样的情况,界面发生了变化,没有任何警告,以虚线箭头的形式出现,但是当使用旧的数据结构执行它时,它会简单地崩溃。作为完全有效的私有节点,不保证私有节点的功能。