主题:汇编高手和DELPHI高手请进
asm读文件的代码
............
StreamInProc proc hFile:DWORD,pBuffer:DWORD, NumBytes:DWORD, pBytesRead:DWORD
invoke ReadFile,hFile,pBuffer,NumBytes,pBytesRead,0
xor eax,1
ret
StreamInProc endp
...........................
invoke CreateFile,addr FileName,GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0
.if eax!=INVALID_HANDLE_VALUE
mov hFile,eax
mov editstream.dwCookie,eax
mov editstream.pfnCallback,offset StreamInProc
invoke SendMessage,hwndRichEdit,EM_STREAMIN,SF_TEXT,addr editstream
invoke SendMessage,hwndRichEdit,EM_SETMODIFY,FALSE,0
invoke CloseHandle,hFile
mov FileOpened,TRUE
.else
invoke MessageBox,hWnd,addr OpenFileFail,addr AppName,MB_OK or MB_ICONERROR
.endif
我把它转成DELPHI代码时速度还是不快。这是为什么。用的是一样的EDITSTREAM。(首先当然不是DELPHI的问题),还是那里没有弄好。
下面我把DELPHI的部分代码写出来。请大家指点。
FUNCTION streaminproc(hfile:dword;pbuffer:pchar;numbytes:dword;var pbytesread:dword):longint;stdcall;
begin
readfile(hfile,pbuffer^,numbytes,pbytesread,0);
result:=0;
end;
...............
editstream.dwcookie:=hfile;
editstream.pfncallback:=@streaminproc;
.........................
主要代友就是这样,可以读取文件,但速度还是不快。这是为什么。希望DELPHI和汇编高手指点指点我。
万分感谢。在线等
............
StreamInProc proc hFile:DWORD,pBuffer:DWORD, NumBytes:DWORD, pBytesRead:DWORD
invoke ReadFile,hFile,pBuffer,NumBytes,pBytesRead,0
xor eax,1
ret
StreamInProc endp
...........................
invoke CreateFile,addr FileName,GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0
.if eax!=INVALID_HANDLE_VALUE
mov hFile,eax
mov editstream.dwCookie,eax
mov editstream.pfnCallback,offset StreamInProc
invoke SendMessage,hwndRichEdit,EM_STREAMIN,SF_TEXT,addr editstream
invoke SendMessage,hwndRichEdit,EM_SETMODIFY,FALSE,0
invoke CloseHandle,hFile
mov FileOpened,TRUE
.else
invoke MessageBox,hWnd,addr OpenFileFail,addr AppName,MB_OK or MB_ICONERROR
.endif
我把它转成DELPHI代码时速度还是不快。这是为什么。用的是一样的EDITSTREAM。(首先当然不是DELPHI的问题),还是那里没有弄好。
下面我把DELPHI的部分代码写出来。请大家指点。
FUNCTION streaminproc(hfile:dword;pbuffer:pchar;numbytes:dword;var pbytesread:dword):longint;stdcall;
begin
readfile(hfile,pbuffer^,numbytes,pbytesread,0);
result:=0;
end;
...............
editstream.dwcookie:=hfile;
editstream.pfncallback:=@streaminproc;
.........................
主要代友就是这样,可以读取文件,但速度还是不快。这是为什么。希望DELPHI和汇编高手指点指点我。
万分感谢。在线等