我尝试在MASM32中通过CreateFile打开文件,但在打开合法文件时出现INVALID_HANDLE_VALUE。
.386
.model flat,stdcall
option casemap:none
include \masm32\include\windows.inc
include \masm32\include\user32.inc
includelib \masm32\lib\user32.lib
include \masm32\include\kernel32.inc
includelib \masm32\lib\kernel32.lib
.DATA
FileName db "C:\Users\machine\Desktop\putty.exe",NULL
BadText db "Its not ok",0
OkText db "Its ok",0
.DATA?
hFile HANDLE ?
.CODE
start:
invoke CreateFile,addr FileName,GENERIC_READ OR GENERIC_WRITE,FILE_SHARE_READ OR FILE_SHARE_WRITE, NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL
mov hFile,eax
cmp hFile, INVALID_HANDLE_VALUE
jz code1
invoke MessageBox,NULL,addr OkText,addr OkText,MB_OK
invoke ExitProcess,0
code1:
invoke MessageBox,NULL,addr BadText,addr BadText,MB_OK
invoke ExitProcess,0
ret
end start我尝试\而不是\,用NULL代替0,但都不起作用。谢谢你的帮助。
发布于 2014-03-03 02:58:53
您的代码没有任何问题,它可以正常工作。问题一定是与目标文件有关。无论是权限问题还是其他问题,我都不知道。
希望这能有所帮助。
发布于 2014-12-16 05:40:24
invoke CreateFile, addr FileName, GENERIC_WRITE, FILE_SHARE_WRITE or FILE_SHARE_READ, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULLhttps://stackoverflow.com/questions/22121558
复制相似问题