Нужен пример оконной программы под Win64 на FASM

Тема в разделе "WASM.X64", создана пользователем rpy3uH, 21 июл 2010.

  1. rpy3uH

    rpy3uH New Member

    Публикаций:
    0
    Регистрация:
    14 сен 2006
    Сообщения:
    503
    У кого-нибудь есть исходник оконной программы (с регистрацией класса, оконной процедурой и т.д.) под win64 на FASM?
    У меня windows XP x64 SP2. Написал программу, не работает, встаёт на вызове функции GetMessage. Такое ощущение что сообщения не приходят вообще

    Код (Text):
    1. msg_loop:
    2.         invoke   GetMessage, msg, 0, 0,0   ; <---- здесь останавливается!
    3.  
    4.         cmp  rax, 0
    5.         je   end_loop
    6.  
    7.         invoke   TranslateMessage, msg
    8.         invoke   DispatchMessage, msg
    9.  
    10.         jmp      msg_loop
    11.  
    12. end_loop:
    13.         invoke  ExitProcess, 0
    Юзаю отладчик fdbg0022

    полный код программы в прицепе
     
  2. KeSqueer

    KeSqueer Сергей

    Публикаций:
    0
    Регистрация:
    19 июл 2007
    Сообщения:
    1.183
    Адрес:
    Москва
    Примеры находятся в папке EXAMPLES\WIN64
     
  3. rpy3uH

    rpy3uH New Member

    Публикаций:
    0
    Регистрация:
    14 сен 2006
    Сообщения:
    503
    я забыл что параметры оконной процедуре передаются через регистры и перед их использованием надо значения из регистров перекинуть в стек.
    Код (Text):
    1.         mov     [hwnd], rcx
    2.         mov     [wmsg], rdx
    3.         mov     [wparam], r8
    4.         mov     [lparam], r9
    а использовать регистры не вариант, так как они испортятся после вызова любой API функции