读书人

asm调用MessageBoxA,该如何解决

发布时间: 2012-09-14 23:00:49 作者: rapoo

asm调用MessageBoxA

_declspec(naked)void main()
{
_asm
{
push 0;
push 0;
push 0;
push 0;
mov eax,7666EA71h; // 假设 0x7666EA71 是 MessageBoxA 的地址
call eax;
ret;
}


这段asm代码可以完成MessageBox(0,0,0,0);的功能,

如果我想要完成MessageBox(0,"123","abc",0);的功能,

在不使用C/C++语言来定义"123"和"abc"两个字符串的情况下,asm代码应该怎么写?

也就是说用纯_asm语言来完成MessageBox(0,"123","abc",0);的功能。






[解决办法]
__asm
{
push '321'
push 'cba'
mov eax,esp
push 0
push eax
add eax,4
push eax
push 0
call dword ptr[MessageBoxA]
add esp,8
}

读书人网 >C++

热点推荐