Показать сообщение отдельно
Старый 02.02.2011, 01:20   #250
Местный
 
Аватар для supernewbie
 
Регистрация: 23.09.2009
Сообщений: 1,232
Сказал Спасибо: 119
Имеет 172 спасибок в 134 сообщенях
supernewbie пока неопределено
По умолчанию

Цитата:
Сообщение от destructor Посмотреть сообщение
у тебя маниакальная привычка все усложнять.

Добавлено через 1 минуту
потренеруйся на любой __stdcall функции с одним параметром
тут отличие только сохранить регистр ecx
потренироватся в чём?
Добавлено через 1 минуту
функция!!! возвращает integer
так всё ок:
delphi Код:
function AddNetworkQueue_hook(np:PNetworkPacket): integer; stdcall; begin asm mov tmpPointer, ecx end; ParsingFromServer(np); asm push np; mov ecx, tmpPointer call [AddNetworkQueue_origAddr] end; end;

так всё не ок:
delphi Код:
function AddNetworkQueue_hook(np:PNetworkPacket): integer; stdcall; var   s:string;   p:pointer;   b:byte; begin asm mov tmpPointer, ecx end; try   s:=IntToHex(np.id,2)+' ';   if (np.size>0) and (np.size<6000) then   for i:=0 to np.size-1 do   begin   p:=Pointer(cardinal(np.data)+i);   b:=Byte(p^);   s:=s+IntToHex(b,2)+' ';   end;   writeLn('FromServer:'+s); except end; asm push np; mov ecx, tmpPointer call [AddNetworkQueue_origAddr] end; end;

но при этом проблема с критами всё равно осталась!
__________________
Начало.
supernewbie вне форума   Ответить с цитированием