|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Апр 9, 2004 14:23:44 В ESI хранится хэндл окна, но в WindowProc он становится неверным.ЧТО ДЕЛАТЬ?[ |
|
|
Дата: Апр 9, 2004 14:29:28 В каком смысле "но в WindowProc он становится неверным" ?? покажи кусок кода. |
|
|
Дата: Апр 9, 2004 14:30:41 · Поправил: s0rg Ты хочешь сказать наверное, что hWnd после CreateWindow не равен тому что приходит как hWnd в оконный процедуре? Если да - то это действительно два разных значения и хранить первый hWnd (после Create) надо в памяти а не в регистре. Если нет - следи за push/pop еще значения esi изменяют разные stos/movs/scas/... |
|
|
Дата: Апр 9, 2004 15:13:24 s0rg stos/scas не изменяют esi.. :) |
|
|
Дата: Апр 9, 2004 15:19:55 в WindowProc он становится неверным WindowProc - это CallBack функция. Она вызывается виндосом, в процессе работы DispathMessage. Значение ESI там неопределено, его меняет сам виндос приобработке DispathMessage Еще рекомендуется сохранять EBP, EBX, ESI, EDI, если они используются внутри WindowProc. (хотя это не обязательно для всех версий виндоса) ЧТО ДЕЛАТЬ? Использовать параметр, который передает виндос в ф-цию proc WindowProc hwnd,uMsg,wParam,lParam |
|
|
Дата: Апр 9, 2004 18:45:36 · Поправил: prog OverMind Если какието данные тебе нужны в разных функциях, то их правильнее будет записывать в переменные, т.к. хранить чтото нужное Везде в регистре (esi,edi,ebx)- тяжко и замучаешься везде сохранять-восстанавливать его. Тем более, что esi,edi будешь использовать почти везде. Сохраняй EBX, ESI, EDI, если хочешь чтобы чтото работало в Win2k. Литературно про их сохранение читай тут: http://www.wasm.ru/article.php?article=biprjasm только там очепятка- это не сегментные регистры. |
|
|
Дата: Апр 9, 2004 20:06:43 [ prog - Сохраняй EBX, ESI, EDI, если хочешь чтобы чтото работало в Win2k. ] Странно, у меня в 2K (w/o SP) все работает если их портить в WindowProc. DialogProc в 2К - там нельзя. XP - по барабану. В Win98SE нужно сохраниять EBP & EDI в WindowProc. Более старые виндосы не смотрел.. Но лучше всеже сохранять :/ Если какието данные тебе нужны в разных функциях, то их правильнее будет записывать в переменные Это верно, но в случае с WindowProc логично использовать, тот хендл, который приходит в hwnd. Тогда можно обрабатывать сообщения от разных окон. |
|
|
Дата: Апр 9, 2004 21:51:56 S_T_A_S_ Это верно, но в случае с WindowProc логично использовать, тот хендл, который приходит в hwnd. Естественно. Я имел ввиду вообще, в принципе. :) |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.053 |