汇编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会重复显示,但只是为了测试用)
[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
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28