Показать сообщение отдельно

  #5  
Старый 29.01.2010, 16:36
sn0w
Статус пользователя:
Регистрация: 26.07.2005
Сообщений: 568
С нами: 10943066

Репутация: 1236


По умолчанию

Цитата:
Сообщение от nMonkn  
Чтобы лучше разобратся с указателями, напиши простенькую прогрумку аля
void mail(void)
{
char *text = "test";
MessageBox(NULL, text, "cap", MB_OK);
return;
}

Потом открой ее в отладчике(OllyDbg) и посмотри как используется указатель на текст.


ЗЫ
Я сам, пока не посмотрел в отладчике, не до конца понимал принцип указателей.

да никак по сути. вот самое простое но может изза оптимизации...

77502800 90 nop
77502801 90 nop
77502802 90 nop
77502803 C700 01000000 mov dword ptr ds:[eax],1
77502809 90 nop
7750280A 90 nop
7750280B 90 nop
7750280C C3 retn
7750280D 90 nop
7750280E 90 nop
7750280F 90 nop
77502810 C700 02000000 mov dword ptr ds:[eax],2
77502816 90 nop
77502817 90 nop
77502818 90 nop
77502819 C3 retn
7750281A > 55 push ebp
7750281B 8BEC mov ebp,esp
7750281D 51 push ecx
7750281E CC int3
7750281F 8D45 FC lea eax,dword ptr ss:[ebp-4]
77502822 E8 D9FFFFFF call cspeed.77502800
77502827 E8 E1FFFFFF call cspeed.7750280D
7750282C 33C0 xor eax,eax
7750282E C9 leave
7750282F C2 1000 retn 10



а сама прога

void __stdcall f1(int *v)
{
__asm{
nop
nop
nop
}
*v = 1;
__asm{
nop
nop
nop
}
}

void __stdcall f2(int &v)
{
__asm{
nop
nop
nop
}
v = 2;
__asm{
nop
nop
nop
}
}
//////////////////////////////////////////////////////////////////////////
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{

int d;

__asm int 3;

d=0;


f1(&d);
f2(d);

return 0;
}
__________________


snow white world wide
 
Ответить с цитированием