+ -
当前位置:首页 → 问答吧 → 汇编win32小程序,writefile函数总是错误,无法写入,请高手指教啊

汇编win32小程序,writefile函数总是错误,无法写入,请高手指教啊

时间:2011-09-02

来源:互联网

部分代码如下:
[code=Assembly][/code]
a db "F:\b.txt",0 ;该文件存在且为空文件
buff db "abcd",0 ;待写入数据
msgtitle db "提示",0
errormsg db "打开错误",0
errormsg1 db "写入错误",0
hFile dd ? ;文件句柄
ByteWrite dd ? ;实际写入数据

.code
start:
invoke CreateFile, addr a, GENERIC_READ, FILE_SHARE_READ, NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL
.if eax == INVALID_HANDLE_VALUE
jmp error
ret
.endif
mov hFile, eax
invoke WriteFile,hFile,addr buff,sizeof buff,addr ByteWrite,0
.if eax == 0
jmp error1
ret
.endif
invoke CloseHandle, hFile
error:
invoke MessageBox,hWnd,addr errormsg,addr msgtitle,MB_OK
error1:
invoke MessageBox,hWnd,addr errormsg1,addr msgtitle,MB_OK
end start

如果能有writefile成功的源代码就更好了,谢谢了(error和error1会重复显示,但只是为了测试用)

作者: lidawn   发布时间: 2011-09-02

你以 GENERIC_READ 方式打开文件,却想向里面写入东西?写入东西的话,要以 GENERIC_WRITE 打开吧,最好取消了共享模式。

作者: zara   发布时间: 2011-09-02

Windows编程的话GetLastError()函数是最有力的调试工具

作者: Areslee   发布时间: 2011-09-02