Код (Text): ;Win32 API. Урок 2. MessageBox format PE GUI 5.0 include '%F%\win32ax.inc' section '.idata' import data readable library kernel32,'kernel32.dll',user32,'user32.dll' import user32,\ MessageBox,'MessageBox' import kernel32,\ ExitProcess,'ExitProcess' section '.data' data readable writeable MsgBoxCaption db "Iczelion Tutorial No.2",0 MsgBoxText db "Win32 Assembly is Great!",0 section '.code' code readable executable invoke MessageBox, NULL, addr MsgBoxText, addr MsgBoxCaption, MB_OK invoke ExitProcess, NULL Не работает. Может быть надо MessageBoxA ? Как красивее написать код под Iczelion'а, особенно непонятки с оформлением секций ? Если зделать упрощённый вариант, то смысл уроков масм за этим вообще теряется! - Код (Text): include 'win32ax.inc' .code start: invoke MessageBox,HWND_DESKTOP,"Hi! I'm the example program!","Win32 Assembly",MB_OK invoke ExitProcess,0 .end start
Semiono Не работает. В чем это выражается? [offtop] Если зделать упрощённый вариант, то смысл уроков масм за этим вообще теряется! Afaik смысл и заключается в том, чтобы продемонстрировать, что программирование на языке ассемблера под windows тривиально. [/offtop]
MessageBox в модуле user32.dll похоже не существует. Репортирует сам эксешник. Из IDE запускается молча и нивидимо я просто не знаю как оформлять секции лучше, в примерах фасм там разные вариации... пока преткновение это сам фасм синтакс
Fasm - Win32 API. Урок 2. MessageBox - wasm.ru/print.php?article=1001002 Код (Text): format PE GUI 5.0 include '%F%\win32ax.inc' MsgBoxCaption db 'Iczelion Tutorial No.2',0 MsgBoxText db 'Win32 Assembly is Great!',0 start: invoke MessageBox,NULL,MsgBoxText,MsgBoxCaption,MB_OK invoke ExitProcess,NULL .end start Работает! Проблемма была в .end start метках... Забавно что импорты наоборот всё портят, а оформления секций в данном случае вообще игнорируются