· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.WIN32 —› WinMain

Посл.отвђт Сообщенiе


Дата: Мар 14, 2004 00:20:23

Здравствуйте.
Люди, помогите пожалуйста начинающему.
В главной процедуре окна строится стековый кадр
для структуры MSG
push ebp
mov ebp,esp
и достаем параметры:
hwnd equ [ebp+08]
lparam equ [ebp+0C]
wparam equ [ebp+10]
message equ [ebp+14]
где находятся параметры time и pt?
если по win32api то в [ebp+18] и [ebp+1C],
если так то что в [ebp] и [ebp+04] ?


Дата: Мар 14, 2004 00:25:05

Параметры чего?


Дата: Мар 14, 2004 00:30:10

Структуры MSG


Дата: Мар 14, 2004 02:32:59

[ebp] - находится старый ebp ; push ebp
[ebp+04] - адрес возврата из "процедуры"


Дата: Мар 14, 2004 02:40:33

80x86
Похоже, что Вы подразумеваете не WinMain, а WndProc. Среди параметров оконной процедуры нет time и pt.


Дата: Мар 14, 2004 02:51:49

А что тебя смущает??? Параметры time и pt действительно будут в [ebp+18h] и [ebp+0Ch], но только если это единственный стековый кадр. А вообще, если пишеш на МАСМе, используй директиву LOCAL:
aaa proc
  LOCAL ms:MSG
  ...
  mov eax,ms.pt.x
  ...
aaa endp


Дата: Мар 14, 2004 03:16:57

80x86
Судя по hwnd equ [ebp+08] , вы про оконную процедуру aka WndProc. В нее параметры time и pt не передаются.
Вы их получаете, вызвав GetMessage/PeekMessage в "основном цикле выборки сообщений" - там и строится стековый кадр для MSG.
(потом вызываете DispathMessage, которая уже вызывает вашу WndProc, но эти параметры "теряются". MS рекомендует для их получения в WndProc использовать соотв. функции)

В WndProc [ebp] <- результат push ebp, т.е. старое ebp
[ebp+04] <- адрес для ret


Дата: Мар 14, 2004 03:18:36

Ого!
Ну я и печатаю..


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.068