想用Delphi自己写一个返回文件字节数的u32,主要用于教别人,呵呵,演砸了,2M多的文件竟返回1.6M多,还有返回负值,请高手帮我看看,我就是想弄明白。
Delphi项目文件如下:
//返回一个文件的字节数
library Project1;
uses
Windows, SysUtils, Variants, Classes, StdCtrls;
{$R *.res}
{$R mxx.res}
function myfilesize(anyfile:Pchar):Integer;stdcall;
var
str_anyfile:string;
filebyte:integer;
myfile:file;
begin
str_anyfile:=strpas(anyfile);
if FileExists(str_anyfile)then
begin
AssignFile(myfile,str_anyfile);
reset(myfile,1);
filebyte:=filesize(myfile);
closefile(myfile);
result:=filebyte;
end
else
result:=-1;
end;
exports
myfilesize name 'Mxx_FileSize';
begin
end.
未编译的资源文件如下:
1 DLL_HEADER LOADONCALL DISCARDABLE
BEGIN
"Mxx_FileSize\0",
"\0"
END
Mxx_FileSize DLL_HEADER LOADONCALL DISCARDABLE
BEGIN
"\0",
"I\0",
"S\0",
"result:=Mxx_FileSize(""anyfile""
\r\n"
"\r\n"
"功能:返回指定的文件名anyfile的长度,成功则返回文件的字节数,否则返回-1。\r\n"
END
请高手帮看看,谢谢,我只是懂一点点Delphi编程,哪弄错了,确实不知道。谢谢。