2011-03-08 99 views
0

我开始学习使用fasm asm,不幸的是,编译后的代码后,我得到错误:“应用程序已停止工作”,我使用Win7 64位。有没有人知道为什么它不起作用?简单的代码,应用程序已停止工作

format PE Console 4.0 
include 'win32a.inc' 

push MB_OK 
push _tresc 
push _tytul 
push 0 
call [MessageBoxA] 

push 0 
call [ExitProcess] 

mov eax,0 
ret 

_tytul db "Tytul",0 
_tresc db "Hello world :)",0 

data import 
    library user32,'USER32.DLL' 
    library kernel32,'KERNEL32.DLL' 
    import user32,\ 
     MessageBoxA,'MessageBoxA' 
    import kernel32,\ 
     ExitProcess,'ExitProcess' 
end data 
+0

这不是错误,但如果'_tytul'应是你的窗口的标题,你换'推_tytul'和'推_tresc'。 – schnaader 2011-03-08 16:41:12

回答

4

只能有一个宏调用。您的ExitProcess不会被导入并调用错误的地址。把一切都放在一个调用:

data import 
    library user32,'USER32.DLL',kernel32,'KERNEL32.DLL' 
    import user32,MessageBoxA,'MessageBoxA' 
    import kernel32,ExitProcess,'ExitProcess' 
end data