私は、.txtファイルの中に書かれた文字列を読み込み、コンソールに表示しようとしていました。しかし、私はそれを正しくやっていないようだ。誰かが自分のコードを見直して何が間違っているのか教えてください。ありがとう!masm32 ReadFile機能x86 -Windows
include \masm32\include\masm32rt.inc
.data
txtFilter db "*.txt",0
txtFD WIN32_FIND_DATA <>
txtHandle HANDLE ?
fHandle HANDLE ?
bufferLength db ?
buffer db 5000 dup(?)
lnt db "1024",0
okay db "Okay!",0
dokay db "Dokay!",0
.code
start:
push offset txtFD
push offset txtFilter
call FindFirstFile
mov txtHandle, eax
push offset txtFD.cFileName
call StdOut
push 0
push FILE_ATTRIBUTE_NORMAL
push OPEN_EXISTING
push 0
push 0
push FILE_APPEND_DATA
push offset txtFD.cFileName
call CreateFile
.if eax == INVALID_HANDLE_VALUE
jmp _error
.else
mov fHandle, eax
.endif
push 0
push offset bufferLength
push offset lnt
push offset buffer
push fHandle
call ReadFile
jmp _next
_error:
push offset dokay
call StdOut
jmp _next
_okay:
push offset okay
call StdOut
_next:
push offset buffer
call StdOut
push fHandle
call CloseHandle
push txtHandle
call FindClose
push 0
call ExitProcess
end start
コードでは、自分のtxtファイル内の内容を読み取れないようです。しかし、私は正常に私のtxtファイルを検索し、関数のCreateFileに
あなたがいうだけで 'lnt'よりlnt'オフセット'推進しているのReadFileを呼び出すとき。 'nNumberOfBytesToRead'引数は、アドレスではなく値によって渡されます。 –
また、長さ 'lnt'をascii文字列として提供する必要があるかどうかは疑問です。代わりに 'lnt dd 1024'を試してみる – Tommylee2k