Devolución de llamada de una clase


en Este artículo se muestra cómo utilizar una instancia de una clase como una devolución de llamada.
Si quieres un windows de devolución de llamada para llamar a una instancia de una clase, simplemente reemplazar TMyClass con el nombre de la clase, y TMyClass.MyCallBack con su nombre de método.
tipo
& nbsp & nbsp TCallbackThunk = lleno de registro
& nbsp & nbsp & nbsp & nbsp POPEDX: Byte
& nbsp & nbsp & nbsp & nbsp MOVEAX: Byte
& nbsp & nbsp & nbsp & nbsp SelfPtr: Puntero
& nbsp & nbsp & nbsp & nbsp PUSHEAX: Byte
& nbsp & nbsp & nbsp & nbsp PUSHEDX: Byte
& nbsp & nbsp & nbsp & nbsp JMP: Byte
& nbsp & nbsp & nbsp & nbsp JmpOffset: Integer
& nbsp & nbsp final
var
& nbsp & nbsp devolución de llamada: TCallbackThunk
begin
& nbsp & nbsp heredado Crear
& nbsp & nbsp de devolución de llamada.POPEDX := $5A
& nbsp & nbsp de devolución de llamada.MOVEAX := $B8
& nbsp & nbsp de devolución de llamada.SelfPtr := Self
& nbsp & nbsp de devolución de llamada.PUSHEAX := $50
& nbsp & nbsp de devolución de llamada.PUSHEDX := $52
& nbsp & nbsp de devolución de llamada.JMP := $E9
& nbsp & nbsp de devolución de llamada.JmpOffset := Integer(@TMyClass.MyCallBack) - Entero(@Devolución De Llamada.JMP) - 5
& nbsp & nbsp //Llamar a la WINAPI aquí, pasando @devolución de llamada en la devolución de llamada proc, por ejemplo:
& nbsp & nbsp EnumSystemLocales(TFNLocaleEnumProc(@devolución de llamada), LCID_SUPPORTED)
fin









Devolucion de llamada de una clase


Devolucion de llamada de una clase : Multi-millones de consejos para hacer su vida mas facil.


en Este articulo se muestra como utilizar una instancia de una clase como una devolucion de llamada.
Si quieres un windows de devolucion de llamada para llamar a una instancia de una clase, simplemente reemplazar TMyClass con el nombre de la clase, y TMyClass.MyCallBack con su nombre de metodo.
tipo
& nbsp & nbsp TCallbackThunk = lleno de registro
& nbsp & nbsp & nbsp & nbsp POPEDX: Byte
& nbsp & nbsp & nbsp & nbsp MOVEAX: Byte
& nbsp & nbsp & nbsp & nbsp SelfPtr: Puntero
& nbsp & nbsp & nbsp & nbsp PUSHEAX: Byte
& nbsp & nbsp & nbsp & nbsp PUSHEDX: Byte
& nbsp & nbsp & nbsp & nbsp JMP: Byte
& nbsp & nbsp & nbsp & nbsp JmpOffset: Integer
& nbsp & nbsp final
var
& nbsp & nbsp devolucion de llamada: TCallbackThunk
begin
& nbsp & nbsp heredado Crear
& nbsp & nbsp de devolucion de llamada.POPEDX := $5A
& nbsp & nbsp de devolucion de llamada.MOVEAX := $B8
& nbsp & nbsp de devolucion de llamada.SelfPtr := Self
& nbsp & nbsp de devolucion de llamada.PUSHEAX := $50
& nbsp & nbsp de devolucion de llamada.PUSHEDX := $52
& nbsp & nbsp de devolucion de llamada.JMP := $E9
& nbsp & nbsp de devolucion de llamada.JmpOffset := Integer(@TMyClass.MyCallBack) - Entero(@Devolucion De Llamada.JMP) - 5
& nbsp & nbsp //Llamar a la WINAPI aqui, pasando @devolucion de llamada en la devolucion de llamada proc, por ejemplo:
& nbsp & nbsp EnumSystemLocales(TFNLocaleEnumProc(@devolucion de llamada), LCID_SUPPORTED)
fin


Devolución de llamada de una clase

Devolución de llamada de una clase : Multi-millones de consejos para hacer su vida más fácil.
Recommander aux amis
  • gplus
  • pinterest

Comentario

Dejar un comentario

Clasificación