Сейчас на форуме: hgdagon, asfa, bartolomeo (+6 невидимых)

 eXeL@B —› Программирование —› Параметры MessageBox в асме
Посл.ответ Сообщение

Ранг: 4.4 (гость)
Активность: 0.010
Статус: Участник

Создано: 08 августа 2006 17:02
· Личное сообщение · #1

Как в асме перечислять параматры например в Visual С++ я пишу так:
MessageBox(0, msgtext, msgname, MB_YESNO | MB_ICONSTOP);
в асме
invoke MessageBox NULL, addr msgtext, addr msgname, MB_YESNO и вот как мне еще дописать MB_ICONSTOP

и еще появляется сообщение с выбором да нет, как в асме обработать например чтоб при ДА выскакивало одно сообщение при нет другое...



Ранг: 253.9 (наставник)
Активность: 0.130
Статус: Участник

Создано: 08 августа 2006 17:11
· Личное сообщение · #2

| равно +

-----
MicroSoft? Is it some kind of a toilet paper?




Ранг: 47.2 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 08 августа 2006 17:22 · Поправил: MiHaN
· Личное сообщение · #3

_dk_ пишет:
как в асме обработать например чтоб при ДА выскакивало одно сообщение при нет другое...

Результат выполнения MessageBox будет возвращён в eax, ну вот и сравнивай eax с константами IDYES и IDNO.
Всё стандартно



Ранг: 253.9 (наставник)
Активность: 0.130
Статус: Участник

Создано: 08 августа 2006 17:23
· Личное сообщение · #4

MiHaN
посмотри на цитату, как проглючило

-----
MicroSoft? Is it some kind of a toilet paper?




Ранг: 47.2 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 08 августа 2006 17:51
· Личное сообщение · #5

гг ага, ща поправлю



Ранг: 52.2 (постоянный)
Активность: 0.020
Статус: Участник

Создано: 08 августа 2006 18:14
· Личное сообщение · #6

Элементарно!

Например:

invoke MessageBox,0,"Do you want to clear the 'Recent documents' foulder?",\
"Question",MB_YESNO+MB_ICONQUESTION
cmp eax,IDYES
jz Agoo
jmp HEA

Agoo:
invoke SHAddToRecentDocs,2,0

HEA:
...



Ранг: 271.5 (наставник), 12thx
Активность: 0.150
Статус: Участник
Packer Reseacher

Создано: 08 августа 2006 18:19
· Личное сообщение · #7

Ждал, ждал, когда же кто-нить автора на Исцелиона пошлет, не послали...

-----
My love is very cool girl.




Ранг: 4.4 (гость)
Активность: 0.010
Статус: Участник

Создано: 08 августа 2006 18:45
· Личное сообщение · #8

Ну спасибо теперь понятно просто надо было узнать, что | == + и что результат помещается в есх...



Ранг: 4.4 (гость)
Активность: 0.010
Статус: Участник

Создано: 08 августа 2006 20:13 · Поправил: _dk_
· Личное сообщение · #9

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

invoke MessageBox NULL, "sdfdfs", "dfgsdfg", MB_YESNO



Ранг: 47.2 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 09 августа 2006 06:45
· Личное сообщение · #10

Можно через макрос:

literal MACRO quoted_text:VARARG
LOCAL local_text
.data
local_text db quoted_text,0
align 4
.code
EXITM <local_text>
ENDM

SADD MACRO quoted_text:VARARG
EXITM <ADDR literal(quoted_text)>
ENDM

invoke MessageBox, NULL, SADD('sdfdfs'), SADD('dfgsdfg'), MB_YESNO

Естественно, это только в MASM.

А вообще-то, возьми любые сорцы на MASM, полистай и все вопросы сами отпадут



Ранг: 4.4 (гость)
Активность: 0.010
Статус: Участник

Создано: 09 августа 2006 12:03
· Личное сообщение · #11

ОК спастбо... уже скачал пару уроков Исцелиона...)


 eXeL@B —› Программирование —› Параметры MessageBox в асме
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати