var
    Buffer,Writep:PChar;  Writep:=allocmem(BytesPerSector);
  FillMemory(Writep,BytesPerSector,0);
  buffer:='35347rtghth356h5635347rtghth356h5635347rt';
  hDeviceHandle :=CreateFile(Writedrive, GENERIC_READ and GENERIC_WRITE,
    FILE_SHARE_READ OR FILE_SHARE_WRITE, nil, OPEN_EXISTING, 0, 0);  (1)iWrite:=FileWrite(hDevicehandle,Buffer^,length(buffer));
  (2)iWrite:=FileWrite(hDevicehandle,Writep[0],1024);为什么FileWrite返回值总是-1,FileWrite应该怎么用,哪位大侠解释下   

解决方案 »

  1.   


    你得函数配对有问题
    CreateFile是api函数,FileWrite是delphi提供的方法
    配对应该如下API:
      CreateFile
      WriteFile
    Delphi:
      FileCreate
      FileWrite
      

  2.   

    暈倒。
      hDeviceHandle :=CreateFile(Writedrive, GENERIC_READ or GENERIC_WRITE,
        FILE_SHARE_READ OR FILE_SHARE_WRITE, nil, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0);
    AND 和OR 的問題,不是什麼函數對應的問題。
      

  3.   


    老刘说的对,楼主被我误导了
    其实你得原因可能在于,文件不存在时,没有创建
    CREATE_ALWAYS:创建一个新文件,将覆盖已存在的文件
    能把分给老刘吗