怪问题,从STDIN中读入字符串不能用于CREATEFILE吗??????

929 2003-12-15 04:33:59
;----------------
;编译模式="CON"
;----------------
.386
.model flat, stdcall
option casemap :none

include windows.inc
include user32.inc
include kernel32.inc
include masm32.inc

includelib user32.lib
includelib kernel32.lib
includelib masm32.lib
;-------------------------------------------------------

.DATA
szMsg db "Please Input the FileName:",13,10,0
errMsg db "Error In Open File",13,10,0
buffer db 256 dup(?),0
fileName db 64 dup(?)
fileName1 db 'f:\dos1.asm',0
fh dd ?
dwRead dd ?
dwOverLap dd ?

.CODE
START:

invoke locate,2,2 ;输出文本的坐标
invoke StdOut,ADDR szMsg
invoke locate,2,3
invoke StdIn,ADDR fileName,sizeof fileName
invoke StdOut,ADDR fileName
invoke CreateFile,addr fileName,GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL
;在这个调用中运行后返回INVALID_HANDLE_VALUE,为什么呀????

.if(eax==INVALID_HANDLE_VALUE)
invoke StdOut,addr errMsg
invoke ExitProcess,1
.ENDIF
mov fh,eax
.repeat
invoke ReadFile,fh,addr buffer,250,addr dwRead,NULL
mov ebx,dwRead
;inc bx
mov buffer[bx],0
invoke StdOut,addr buffer
;invoke StdIn,Addr buffer,256
.until(dwRead!=250)
invoke CloseHandle,fh
invoke ExitProcess,0

end START
...全文
74 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

21,458

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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