Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.02.2014, 21:57   #1
Malriser
xor esp, esp
Форумчанин
 
Регистрация: 11.02.2014
Сообщений: 135
По умолчанию Ошибка записи WriteFile ( записывает 0 байт )

Всем привет.

В чем ошибка? Уже всю голову сломал

Код:
include 'win32ax.inc'

section '.data' data readable writeable
file_1_:
file_1 file 'Project2.exe'
file_1_sz dd $ - file_1_
file_name db 'haha.exe',0
hFile dd ?
written dd ?
section '.code' code readable executable
start:
    cmp [file_1_sz], 0
    je @error_file_1
    invoke CreateFile, file_name, GENERIC_WRITE+GENERIC_READ,FILE_SHARE_READ,0,CREATE_ALWAYS,0,0
    mov [hFile], eax
    invoke WriteFile, hFile, file_1, file_1_sz, [written], 0
    cmp [written], 0
    je @error_write
    invoke CloseHandle, hFile
    @exit:
    push 0
    call [ExitProcess]
    @error_file_1:
    invoke MessageBox, 0, "File size is zero", "Error", MB_ICONERROR
    jmp @exit
    @error_write:
    invoke MessageBox, 0, "Writting error", "Error", MB_ICONERROR
    jmp @exit
.end start
При запуске все время вылетает Writting Error. В чем моя ошибка? Файл создается, а запись в него не происходит

Заранее спасибо


P.S. Мне не принципиально, просто хочу разобраться с записью в файл на FASM.

UPD:

Сейчас попробовал для интереса что нибудь записать в MBR, тоже фейл. Однако на Си все зашибись работает.

Последний раз редактировалось Malriser; 18.02.2014 в 22:00.
Malriser вне форума Ответить с цитированием
Старый 18.02.2014, 22:22   #2
Ulex
Непрофессионал
Участник клуба
 
Аватар для Ulex
 
Регистрация: 01.01.2008
Сообщений: 1,405
По умолчанию

а так:

Код:
    invoke WriteFile, [hFile], file_1, [file_1_sz], written, 0
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------
Страничка с моими программками http://ulex-masm.ru
Ulex вне форума Ответить с цитированием
Старый 18.02.2014, 22:29   #3
Malriser
xor esp, esp
Форумчанин
 
Регистрация: 11.02.2014
Сообщений: 135
По умолчанию

Цитата:
Сообщение от Ulex Посмотреть сообщение
а так:

Код:
    invoke WriteFile, [hFile], file_1, [file_1_sz], written, 0
о, спасибо огромное. Помогло .
Malriser вне форума Ответить с цитированием
Старый 19.02.2014, 10:12   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

----------------------------
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Функция изменяет старший байт числа на заданное значение,не изменяя младший байт ( C++ ) Любимый_1 Помощь студентам 3 07.10.2013 16:42
WriteFile Madmaxisss Win Api 5 01.04.2012 14:08
Найти байт максимальным количестов единиц и байт с максмальным количеством нулей и разность (ассемблер) Beren42 Помощь студентам 0 15.12.2010 20:32
ошибка 48 - программа больше 62520 байт. Что делать? Pancher Паскаль, Turbo Pascal, PascalABC.NET 22 02.08.2007 01:11