为什么LabVIEW在调用我的LabVIEW DLL的时候会出现崩溃?
主要软件: LabVIEW Development Systems>>LabVIEW Full Development System
主要软件版本: 6.0
主要软件修正版本: N/A
次要软件: N/A
问题: 我将LabVIEW的一个VI转换成了DLL,在我创建完这个DLL之后,我尝试从一个新的LabVIEW VI中去掉用它,但是在Call Library Function Node导致LabVIEW崩溃。我该如何修复它?
解答: 在从LabVIEW中调用LabVIEW创建的DLL的时候,有两件事情您需要检查一下:
- 确保DLL函数调用方法和您在Call Library Function配置对话框中选的是一致。如果您不选择其他的话,LabVIEW默认情况下使用C的调用方法给LabVIEW的DLL调用。在Windows中,您也可以选择标准的调用方法。在其他的操作系统里,只有C的调用方法是允许的,所以不存在这个问题。
一个调用方法不正确的现象是,在函数运行的时候,在程序框图里Call Function Library函数返回的时候会引起LabVIEW崩溃。
- 如果您正在显示LabVIEW DLL的前面板,有两条严格的要求确保它能够工作。
- Call Library Function调用的DLL必须设置成Reentrant。在执行分类(在浏览按钮下面)将Run in UI Thread 设置成 Reentrant。
- 在调用VI里(LabVIEW开发环境里调用LabVIEW创建的DLL的那个VI)必须不能设置成用户接口执行系统。您可以在File » VI Properties » Execution中检查,并确保执行系统是标准的,仪器i/o,数据采集,其他的1,或者2(如果上层调用这个VI的VI是执行在用户接口系统的话,对于调用者也要这么设置)。
相关链接:
附件:
报告日期: 07/31/2006
最近更新: 08/30/2006
文档编号: 228AA3IJ
Other Support Options
Ask the NI Community
Collaborate with other users in our discussion forums
Request Support from an Engineer
A valid service agreement may be required, and support options vary by country.