929 2003年12月15日
怪问题,从STDIN中读入字符串不能用于CREATEFILE吗??????
;----------------
;编译模式="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
...全文
26 点赞 收藏 回复
写回复
回复

还没有回复,快来抢沙发~

发动态
发帖子
汇编语言
创建于2007-08-27

1.9w+

社区成员

4.1w+

社区内容

汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区公告
暂无公告