csuwzw 发表于 2006-4-12 04:16:30

求助:仪器调用引起的出错

我在LabVIEW下调用虚拟示波器(Tiepie HS801,并口)时,只要是退出调用的程序,就会引起LabVIEW系统关闭。
“LabVIEW 7.1.1 Development System 遇到问题需要关闭。我们对此引起的不便表示抱歉。”
谁能帮忙解决这个问题?

csuwzw 发表于 2006-4-12 19:02:00

就是,只要一打开含有调用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的函数所占的内存?

csuwzw 发表于 2006-4-12 19:07:36

Delphi或VC中Freelibrary(DLLHandle)函数在LabVIEW中怎样实现?

cpubbs 发表于 2006-4-12 04:26:39

退出什么调用的程序呢?

cpubbs 发表于 2006-4-13 07:24:52

LABVIEW中没有见过需要释放的Freelibrary(DLLHandle),我想LV有可能是自身作了处理,平时都没有用过,并且我现在在用CVI,下面也没有见过用这个东东的!

cpubbs 发表于 2006-4-13 07:27:13

如果DLL的调用的一些输入输出参数设置得不对的话,在LV中调用也会出现这种情况的,需要慢慢对照LV的各种数据类型来进行调试!

cpubbs 发表于 2006-4-13 07:28:15

<P><a href="http://www.cpubbs.com/old_bbs/dispbbs.asp?BoardID=4&amp;replyID=16754&amp;id=1806&amp;skin=0" target="_blank" >http://www.cpubbs.com/old_bbs/dispbbs.asp?BoardID=4&amp;replyID=16754&amp;id=1806&amp;skin=0</A></P>
<P><a href="http://www.cpubbs.com/old_bbs/dispbbs.asp?BoardID=4&amp;replyID=7717&amp;id=2210&amp;skin=0" target="_blank" >http://www.cpubbs.com/old_bbs/dispbbs.asp?BoardID=4&amp;replyID=7717&amp;id=2210&amp;skin=0</A></P>
<P>这二个贴子比较好,可以看一下!</P>
页: [1]
查看完整版本: 求助:仪器调用引起的出错