Начинающий
- Статус
- Онлайн
- Регистрация
- 2 Окт 2025
- Сообщения
- 9
- Реакции
- 2
masm
помогите с проблемой кому не трудно
только без гпт ответ, плиз, он не может различить два асма
дело в том, что я пытаюсь вывести диалоговое окно с сообщением об ошибки в случае если файл создать не получилось
если выводить без параметра mb_rertycancel, все прекрасно выводит, я специально для проверки указал путь, которого нет
но, стоит мне добавить MB_RETRYCANCEL чтобы появились кнопки "повторить" и "закрыть", мне выводит ошибку, я в душе не чаю как это пофиксить
сразу говорю, константу я создал, 0x05 чтобы выбрать MB_RETRYCANCEL. Вроде в коде все реализовано правильно, но все равно не работает и выдает ошибку
помогите с проблемой кому не трудно
только без гпт ответ, плиз, он не может различить два асма
дело в том, что я пытаюсь вывести диалоговое окно с сообщением об ошибки в случае если файл создать не получилось
если выводить без параметра mb_rertycancel, все прекрасно выводит, я специально для проверки указал путь, которого нет
msg:
includelib kernel32.lib
includelib user32.lib
extrn CreateFileA: PROC
extrn WriteFile: PROC
extrn CloseHandle: PROC
externdef MessageBoxA:PROC
MB_RETRYCANCEL equ 0x00000005
.data
filename db 'H:\asdsa\test.txt', 0
eror byte "error files", 0
titles byte "errors", 0
data_to_write db 'hiii', 0
data_length = $ - data_to_write - 1
bytes_written dq 0
file_handle dq 0
.code
main proc
sub rsp, 40
mov rcx, offset filename
mov rdx, 40000000h
mov r8, 0
mov r9, 0
mov qword ptr [rsp+32], 2
mov qword ptr [rsp+40], 80h
mov qword ptr [rsp+48], 0
call CreateFileA
cmp rax, -1
je error
mov [file_handle], rax
mov rcx, [file_handle]
mov rdx, offset data_to_write
mov r8, data_length
lea r9, bytes_written
mov qword ptr [rsp+32], 0
call WriteFile
test rax, rax
jz error
mov rcx, [file_handle]
call CloseHandle
mov rcx, 0
jmp exit_programm
error:
xor rcx, rcx
lea rdx, eror
lea r8, titles
mov r9d, MB_RETRYCANCEL
call MessageBoxA
mov rcx, -1
jmp exit_programm
ret
exit_programm:
add rsp, 40
ret
main endp
end
но, стоит мне добавить MB_RETRYCANCEL чтобы появились кнопки "повторить" и "закрыть", мне выводит ошибку, я в душе не чаю как это пофиксить
сразу говорю, константу я создал, 0x05 чтобы выбрать MB_RETRYCANCEL. Вроде в коде все реализовано правильно, но все равно не работает и выдает ошибку