首页  编辑  

文件关闭和VB的问题

Tags: /超级猛料/Stream.File.流、文件和目录/文件操作/   Date Created:

用Delphi写的DLL,在VB中进行调用,有的时候会不能关闭文件句柄?

VB启动的时候,会关闭5个标准DOS文件句柄(0..4),这样,打开文件的例程就可以重新使用这些句柄,对于使用文件来说,没有什么问题,很正常,但是,Delphi的关闭文件的例程是有内建的安全特征的,它拒绝关闭DOS标准文件句柄。在DOS下,这是一个好主意,然而,你面临的情况是在DLL中打开文件,而且DLL可能不会关闭,即使关闭DLL你的文件也一直打开!!VC++的限制少一些,因此可以关闭标准的DOS文件句柄。如果你要真正关闭这个打开的文件,可以使用下面的过程:

Procedure ReallyCloseFile(Var F); Assembler;

Asm

 les bx, F

 mov bx, es:[bx]

 mov ah, $3E

 call Dos3Call

End;