CreateFile问题

cszhz 2005-01-25 06:42:22
操作系统为Windows XP。
我想用此函数打开一个已经存在的文件进行写操作,但是为何每次调用后,文件大小均为0呢?

fp := CreateFile(pchar(Fn),
GENERIC_WRITE or GENERIC_READ,
FILE_SHARE_Read or FILE_SHARE_Write,
nil,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
0);
...全文
188 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
chijingde 2005-01-27
  • 打赏
  • 举报
回复
没啥问题啊?
大小是0?
你是怎么取大小的?

var
fp:HFILE;
Fn:pchar;
fszie:integer;
begin
fn:='D:\New Folder\Pic\Blue Lace 16.bmp';
fp := CreateFile(fn,GENERIC_WRITE or GENERIC_READ,FILE_SHARE_Read or FILE_SHARE_Write,nil,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);
fszie:=getfilesize(fp,nil);
showmessage(Floattostr(fszie/1024));
end;

打开一个1.24K的BMP
最后显示的是1.2421875

没错阿?
cszhz 2005-01-27
  • 打赏
  • 举报
回复
有没人知道啊?
cszhz 2005-01-27
  • 打赏
  • 举报
回复
OK。
千错万错都是我的错!

你的我的都是对的。
cszhz 2005-01-26
  • 打赏
  • 举报
回复
没有出错啊!
beyondtkl 2005-01-26
  • 打赏
  • 举报
回复
ShowMessage(IntToStr(GetLastError))....
cszhz 2005-01-26
  • 打赏
  • 举报
回复
没人气了?
cszhz 2005-01-25
  • 打赏
  • 举报
回复
sorry,忘了给出fp的定义
fp:HFILE;
在delphi 中HFILE是longword类型。
不过还是多谢!
dickeybird888 2005-01-25
  • 打赏
  • 举报
回复
CreateFile 返回的是 DWORD,如果你的 fp 是 WORD 的话,返回的双字的高字
就被截掉了,有可能返回了大于 65535 的值,但又不是 invalid_handle,而你只能得到
65535.

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧