求助:仪器调用引起的出错
我在LabVIEW下调用虚拟示波器(Tiepie HS801,并口)时,只要是退出调用的程序,就会引起LabVIEW系统关闭。“LabVIEW 7.1.1 Development System 遇到问题需要关闭。我们对此引起的不便表示抱歉。”
谁能帮忙解决这个问题? 就是,只要一打开含有调用Tiepie HS801的程序时,一关闭该程序,LV就会报错,然后自动退出LV系统。
Tiepie仪器提供Delphi的例程中关于退出仪器的程序如下,
“ begin
Action := caFree;
if DLLHandle >= 32 then
begin
Exitinstrument;
end; { if }
Freelibrary(DLLHandle);
NilAllProcAddresses;
end { if } ”
其中NilAllProcAddresses按我的理解应该是用于释放所调用DLL中的函数的内存,NilAllProcAddresses的定义如下(只简要列出几个释放的函数)
begin
@InitInstrument := nil;
@ExitInstrument := nil;
@GetMaxSampleFrequency:= nil;
@GetMaxRecordLength := nil;
@GetSquareWaveGenStatus := nil;
@GetFunctionGenStatus := nil;
@StartMeasurement := nil;
@GetMeasurement := nil;
@GetMeasureMode := nil;
@SetMeasureMode := nil;
@GetSampleFrequency := nil;
@SetSampleFrequency := nil;
end; { NilAllProcAddresses }
请问:在LabVIEW中如何释放所调用DLL的函数所占的内存? Delphi或VC中Freelibrary(DLLHandle)函数在LabVIEW中怎样实现? 退出什么调用的程序呢? LABVIEW中没有见过需要释放的Freelibrary(DLLHandle),我想LV有可能是自身作了处理,平时都没有用过,并且我现在在用CVI,下面也没有见过用这个东东的! 如果DLL的调用的一些输入输出参数设置得不对的话,在LV中调用也会出现这种情况的,需要慢慢对照LV的各种数据类型来进行调试! <P><a href="http://www.cpubbs.com/old_bbs/dispbbs.asp?BoardID=4&replyID=16754&id=1806&skin=0" target="_blank" >http://www.cpubbs.com/old_bbs/dispbbs.asp?BoardID=4&replyID=16754&id=1806&skin=0</A></P>
<P><a href="http://www.cpubbs.com/old_bbs/dispbbs.asp?BoardID=4&replyID=7717&id=2210&skin=0" target="_blank" >http://www.cpubbs.com/old_bbs/dispbbs.asp?BoardID=4&replyID=7717&id=2210&skin=0</A></P>
<P>这二个贴子比较好,可以看一下!</P>
页:
[1]