Вопрос № 38371: Вечер добрый, Уважаемые Эксперты!
У меня возникла проблемма - я написал программу, которая просто создает окно (см. приложение). Все впринципе работает нормально, но почему-то по нажатию на крестик в углу, само окно закрывается, а процесс (в спис...Вопрос № 38387: Здравствуйте.
Как узнать свой IP ?
Пример предпочтительно на MASM32....
Вопрос № 38.371
Вечер добрый, Уважаемые Эксперты!
У меня возникла проблемма - я написал программу, которая просто создает окно (см. приложение). Все впринципе работает нормально, но почему-то по нажатию на крестик в углу, само окно закрывается, а процесс (в списках процессов) не исчезает. В отладчике увидел, что функция GetMessage возвращает 1 даже при получении сообщения WM_QUIT, но в MSDN написано, что эта функция должна возвращать 0 ( http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/windowing/messagesandmessagequeues/messagesandmessagequeuesreference/messagesandmessagequeuesfunctions/getmessage.asp
). В чем может быть проблемма? Может надо эту функцию какой-нибудь другой заменить?
Приложение:
Отправлен: 24.03.2006, 01:37
Вопрос задал: Zloy_pes (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Joy~
Здравствуйте, Zloy_pes!
Ошиблись чуть чуть в коде
wndproc proc
mov eax,[ebp+10h]; <------------------------ Вот здесь не 0Ch а 10h
cmp eax,WM_DESTROY
jne @not_exit
push 0
call PostQuitMessage
jmp @end_check
not_exit:
jmp DefWindowProc
end_check:
ret 16
wndproc endp
--------- Прорвёмся....
Ответ отправил: Joy~ (статус: 4-ый класс)
Ответ отправлен: 24.03.2006, 08:17
Отвечает: Евгений Иванов
Здравствуйте, Zloy_pes!
Нет, там будет именно 12, потому что параметра 4, они передаются справа налево, и последним в стеке будет адрес возврата. Чтобы добраться до второго параметра (слева), нужно именно прибавить 12. Но не к EBP, а к ESP в данном случае.
--------- Что имеем - не храним, потерявши - плачем
Ответ отправил: Евгений Иванов (статус: Профессор) Россия, Нижний Новгород Тел.: +79087645721 Организация: M2Media.ru Адрес: Нижний Новгород, ул.Малая Ямская, д. 66 WWW:Eugene Ivanov ICQ: 214;88;90;76 ---- Ответ отправлен: 24.03.2006, 09:52
Вопрос № 38.387
Здравствуйте.
Как узнать свой IP ?
Пример предпочтительно на MASM32.
Отправлен: 24.03.2006, 08:28
Вопрос задал: Brutaller (статус: 1-ый класс)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 2)
Отвечает: Лысков Игорь Витальевич
Здравствуйте, Brutaller!
Готовый пример не дам, на асме нет, а лепить нет времени, уж извини :(
Зато даю решение, даже четыре
1. Непосредственно через реестр (проблем с реализацией нет?)
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Tcpip/Parameters/Interfaces/{тут какой-то гуид}. Ключик IPAddress все тебе раскажет!
Перебери все гуиды(некоторые показывают 0.0.0.0)
2.Зайди сюда, тут три реализации (правда, на С :()
http://rsdn.ru/forum/Message.aspx?mid=725977&only=1
http://rsdn.ru/Forum/?mid=43085
--------- Удачи!
Ответ отправил: Лысков Игорь Витальевич (статус: Студент)
Ответ отправлен: 24.03.2006, 10:05