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应该怎么用,哪位大侠解释下
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应该怎么用,哪位大侠解释下
你得函数配对有问题
CreateFile是api函数,FileWrite是delphi提供的方法
配对应该如下API:
CreateFile
WriteFile
Delphi:
FileCreate
FileWrite
hDeviceHandle :=CreateFile(Writedrive, GENERIC_READ or GENERIC_WRITE,
FILE_SHARE_READ OR FILE_SHARE_WRITE, nil, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0);
AND 和OR 的問題,不是什麼函數對應的問題。
老刘说的对,楼主被我误导了
其实你得原因可能在于,文件不存在时,没有创建
CREATE_ALWAYS:创建一个新文件,将覆盖已存在的文件
能把分给老刘吗