Ver Mensaje Individual
  #3  
Antiguo 27-04-2010
GunMiNiHo GunMiNiHo is offline
Miembro
 
Registrado: feb 2009
Posts: 17
Reputación: 0
GunMiNiHo Va por buen camino
Cita:
Empezado por Lord Delfos Ver Mensaje
Yo creo que es porque al hacer jmp($0050E851,punteroProc) el compilador cree que lo que querés hacer es llamar a puneroProc.

Lo que deberías hacer es jmp($0050E851,@punteroProc), con arroba.

Saludos.

PD: Como comentario, cuando postees código es una buena idea postear lo necesario para que compile sin mucho esfuerzo. Así te asegurás que la gente que quiera ayudarte, pueda hacerlo. Yo, por ejemplo, solamente puedo suponer lo que hace la función jmp, así que lo de usar "@" es una simple suposición. Podría andar o no.
La funcion ItemFilterASM, es codigo en ASM y en eso no tengo errores al compilar pero aca te va la funcion entera:

Código Delphi [-]
procedure ItemFilterASM(parametro: boolean; otro: string);stdcall;

begin
asm
MOV DWORD PTR[CounterA],EAX
PUSH EBX
PUSH ESI
XOR EBX,EBX
MOVE ESI,[b] // ---> aki DWORD - String problem


@ifreject:
CMP EAX,[ESI]
JE @skip
CMP [ESI],EBX
JE @end
ADD ESI,$4
JMP @ifreject

@skip:
MOV EAX,$00

@end:
POP ESI
POP EBX
MOv DWORD PRT[EDI+$34],EAX
JMP [ItemFilterEnd]
end;
end;

horror numero 1: jmp(); me devuelve un Integer(DWORD), y @Variable me devuelve un tipo Pointer como hago para convertirlo!!!!!!!!
Responder Con Cita