我遇到了 ReadFile() 的一个奇怪问题。文本文件已正确打开,但它仅读取 4 个字节而不是 MemorySize 中声明的字节数。C 中的相同代码可以正确执行。有人知道怎么了?
问候
.DATA
FileName DB "test.txt",0
MemorySize DWORD 10
.DATA?
hFile HANDLE ?
pMemory DWORD ?
SizeR DWORD ?
.CODE
start:
INVOKE CreateFile, ADDR FileName,\
GENERIC_READ, 0, NULL,\
OPEN_EXISTING, 0, NULL
mov hFile, eax
INVOKE GlobalAlloc, GMEM_FIXED or GMEM_ZEROINIT, MemorySize+1
mov pMemory, eax
INVOKE ReadFile, hFile, ADDR pMemory, MemorySize, ADDR SizeR, NULL
INVOKE MessageBox, 0, ADDR pMemory, 0, 0
INVOKE LocalFree, pMemory
INVOKE CloseHandle, hFile
ret
end start