FindClose的问题。(50分)

  • 主题发起人 主题发起人 epic
  • 开始时间 开始时间
E

epic

Unregistered / Unconfirmed
GUEST, unregistred user!
FindClose应该是在SysUtils单元,<br>我在一个Unit里应用它没有问题,可是但我在此Unit的Interface段uses了Windows以后,<br>就出现错误:InCompatible types: Cardinal and TSearchRec。<br>为什么?<br><br>我想是不是SysUtils和Windows单元里都有FindClose这个函数的声明导致的错误?<br>应该怎么解决?
 
类型不兼容,一个CARDINAL一个是TSearchRec<br>你在DELPHI里敲个 FINDFIRT 或者 FindClose 然后鼠标在上面单一下按F1,帮助里写的很<br>清楚,有空装个词霸吧.
 
&gt;&gt;我想是不是SysUtils和Windows单元里都有FindClose这个函数的声明导致的错误?<br>没错,就是这么回事。<br>用“Ctrl + 鼠标”可以找到FindClose在SysUtils单元中的实现部分,代码很简单,如下:<br>procedure FindClose(var F: TSearchRec);<br>begin<br>&nbsp; if F.FindHandle &lt;&gt; INVALID_HANDLE_VALUE then<br>&nbsp; begin<br>&nbsp; &nbsp; Windows.FindClose(F.FindHandle); //我们可以看到,实际上是封装了一个名字也<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;//叫“FindClose”的WinAPI函数<br>&nbsp; &nbsp; F.FindHandle := INVALID_HANDLE_VALUE;<br>&nbsp; end;<br>end;<br>解决方法也很简单,你要用在SysUtils单元中的FindClose,就直接用。要用Windows单元中<br>解释过来的,可以这样:Windows.FindClose(Handle);
 
Thanks a lot.
 
后退
顶部