From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.



为什么我的DLL调用导致我的LabVIEW Real-Time VI下载失败?



主要软件:
主要软件版本: 6.1
主要软件修正版本: 7.0
次要软件: LabVIEW Modules>>LabVIEW Real-Time Module

问题: 我有一个 LabVIEW 实时 (RT) VI 调用了DLL。 当我尝试以RT控制器为目标运行这个VI的时候返回一个错误信息: “下载失败”。 我点击确定, 随后窗口弹出另一个错误:“在目标设备上载入共享库失败。” 引起这种情况可能的原因是什么?

解答:

在使用实时控制器运行LabVIEW RT 6.1 或更早的版本时出现这种错误的最常见的原因是这些实时控制器使用DOS 8.3文件命名规范 (文件名不能超过8个字符,并且后缀使用3个字符)。 当您以一个实时控制器作为目标机运行一个VI的时候,VI被加载到控制器的内存中,而不是下载到硬盘中。因此,您下载的VI可以有很长的文件名,包括空格,就像在Windows系统中的情况一样。 然而,如果您在您的VI中调用DLL,所有的DLL被下载到控制器的文件系统中,而文件系统只支持DOS 8.3的文件命名。因此,DLL的文件名称如果不符合DOS 8.3文件命名规范就可能会导致下载失败。

举个例子,"my_rt_routine.dll" 就不符合要求。 如果您重命名DLL为 "myrtapp.dll" 并且在调用的VI中以这个名字重新链接, 您将不会再收到这样的错误。 您在主机上为DLL重命名的时候必须小心谨慎,因为这些DLL可能也同时被Windows使用。 重命名会导致Windows找不到这些DLL。 所以首先为DLL创建副本,然后为LabVIEW实时系统使用重命名副本。

注意: 对于 LabVIEW RT 7.0 以上 , 文件名称不再受8.3命名规范约束。



相关链接: Error 6 Using Long File Names on a RT Series PXI Controller
KnowledgeBase[3R8I6M7U]: Using The 8.3 File Naming Convention on LabVIEW RT Controllers
KnowledgeBase[2UH9L2PK]: Error 6: Generic File I/O Error when Disk is Full in LabVIEW Real-Time
KnowledgeBase[3BMI76L1]: How Can I Verify that My DLL is Executable in LabVIEW Real-Time?

附件:





报告日期: 08/01/2002
最近更新: 08/31/2008
文档编号: 2O0DQKEW