Автор вопроса: freeloader | Web-сайт:freeloader.folder-pro.net | ICQ: 50804884
.386
.model flat, STDCALL
option casemap:none
include windows.inc
include kernel32.inc
includelib kernel32.lib
include advapi32.inc
includelib advapi32.lib
include user32.inc
includelib user32.lib
...
lpPathToFile db "C:\Program Files\B'n'C\Clyde\Zamok\crackit.txt",0
lpBuffer db 255 dup(?)
intBuff dd 255
MyText db 'bla bla bla',0
...
invoke MessageBox, NULL, addr lpOK, addr lpWriteBy,MB_OK + MB_ICONINFORMATION
invoke CreateFile, addr lpPathToFile,GENERIC_READ or
GENERIC_WRITE,FILE_SHARE_READ or FILE_SHARE_WRITE,0,CREATE_NEW,FILE_ATTRIBUTE_NORMAL,0
mov hFile, eax
invoke lstrcpy, lpBuffer, addr MyText
invoke WriteFile, hFile, addr lpBuffer, 255, 0,0
;.if RETV!=255
invoke MessageBox,NULL,addr lpError, addr lpWriteBy,MB_OK + MB_ICONERROR
;.endif
invoke CloseHandle, hFile
...
Проблема заключается в том, что я немогу произвести запись в файл, посчитал у меня получилось, что с этим нехитрым кодом я уже воюю около 2 часов, уже не знаю, что еще можно нашаманить... уже что только не перепробывал, вся надежда только на вас...
1. Флаг CREATE_NEW не позволит тебе открыть файл, если он уже существует, если надо переписать файл, если он вдруг уже есть то используй CREATE_ALWAYS
2. Для lstrcpy надо указать адрес буфера, куда копировать, а не содержимое этого буфера.
3. Для WriteFile 4-й параметр не должен быть 0. Это должен быть адрес буфера, который ты подготовил для принятия информации о количестве записаных в файл байт.
Ну и с учётом всего этого
WriteToFile proc
LOCAL hFile :DWORD
LOCAL Written :DWORD
.data
lpPathToFile db "C:\Program Files\B'n'C\Clyde\Zamok\crackit.txt",0
lpBuffer db 255 dup(?)
intBuff dd 255
MyText db 'bla bla bla bbblllaaa',0
.code
ага cresta, всем этим пунктам можно дать оправдание, за два часа можно еще не такое натыкать..., изначально было как я посмотрел все правильно, вот только с CREATE_ALWAYS я не эксперементировал
СПАСИБО ОГРОМНОЕ
PS: Как интерестно получилось с комментариями, может Павел еще под АСМ сделает подсветку синтаксиса?