Вопрос Assembly, обработка mb retrycancel

Начинающий
Начинающий
Статус
Онлайн
Регистрация
2 Окт 2025
Сообщения
9
Реакции
2
masm
помогите с проблемой кому не трудно
только без гпт ответ, плиз, он не может различить два асма


дело в том, что я пытаюсь вывести диалоговое окно с сообщением об ошибки в случае если файл создать не получилось

если выводить без параметра mb_rertycancel, все прекрасно выводит, я специально для проверки указал путь, которого нет
1762107780713.png

msg:
Expand Collapse Copy
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. Вроде в коде все реализовано правильно, но все равно не работает и выдает ошибку
1762107823642.png
 

Вложения

  • 1762091136431.png
    1762091136431.png
    25.4 KB · Просмотры: 5
Назад
Сверху Снизу