MASM32 CreateFile

Я пытаюсь открыть файл через CreateFile в MASM32, но я получаю 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, но ничего не получилось. Спасибо за помощь.

2 ответа

В коде нет ничего плохого, он работает. Проблема должна быть с целевым файлом. Является ли это проблемой разрешений или чем-то еще, я не знаю.

Надеюсь это поможет.


invoke CreateFile, addr FileName, GENERIC_WRITE, FILE_SHARE_WRITE or FILE_SHARE_READ, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL

licensed under cc by-sa 3.0 with attribution.