var
  HANDLE:THandle;
  lpFindFileData:TWIN32FindDataA;
begin
  HANDLE:=FindFirstFile('C:\1233333333333333,lpFindFileData); //这个文件根本不存在
  ShowMessage(Inttostr(HANDLE));//竟然不是-1!为什么?
end;

解决方案 »

  1.   

    FindFirstFile返回文件句柄,如果没有找到,当然是返回 -1 了!
      

  2.   

    HANDLE:=FindFirstFile('C:\1233333333333333,lpFindFileData);好像少了一个引号另外,句柄一般不要这样显示,也就是ShowMessage(Inttostr(HANDLE));
    你只要
    if Handlle <> INVALID_HANDLE_VALUE then
    就可以了.
      

  3.   

    HANDLE:=FindFirstFile(pchar('C:\1233333333333333'),lpFindFileData); 
      handle<>INVALID_HANDLE_VALUE
      

  4.   

    另外一个函数 FindFirst 没有找到返回值为0winapi函数中好多都指定了当函数失败时的返回值,有的是0,有的是 -1(无效句柄)
      

  5.   

    THandle为长整型   4294967295 这是存储结构的问题
      

  6.   

    知道了,在Delphi里是这么定义的INVALID_HANDLE_VALUE = DWORD(-1);所以不能简单的写成-1
      

  7.   

    if Handlle <> INVALID_HANDLE_VALUE then
    就可以了.
      

  8.   

    数据类型转换不当。同意handle<>INVALID_HANDLE_VALUE做法
      

  9.   

    用INVALID_HANDLE_VALUE来判断就行了。