解决方案
确实存在一些不同的原因可能会导致LabVIEW在调用dll函数的时候崩溃,如下所示:
1.确保选择了和DLL相同的调用规范如果调用库函数节点中的调用规范与DLL的调用规范不匹配,则会导致LabVIEW崩溃。调用规范在“调用库函数”节点窗口的右下部分中指定,如下所示。
2.确保已经连接了调用库函数节点(Call Library Function Node)的所有输入和输出如果并未连接调用库函数节点的所有输入和输出,DLL函数将覆写未分配的内存并导致LabVIEW崩溃。
注意:如果您的第二个输入是指向第一个输入的指针,那么您的第一个输入不需要输出。
3.确保DLL函数不会覆写LabVIEW内存如果足够的内存空间分配或DLL函数写入的内容超过分配的内存,DLL将覆写入剩余的LabVIEW内存空间并导致LabVIEW崩溃。所以需要在传值和读出DLL中的数组,字符串或波形之前确保正确分配内存。
4.确保LabVIEW使用了正确的数据类型像函数传递参数使用不正确的参数数据类型(值,引用,句柄等)调用DLL函数会导致函数意外地指向不正确的内存位置,从而导致数据错误,甚至导致LabVIEW或Windows崩溃。
5.函数调用本身就是非法的如果某个函数试图执行非法操作,可能会导致LabVIEW崩溃。如果您不是该函数的编写者,请与该函数的编写者联系。