1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| type
TMyCallback = procedure (ADataRead: PAnsiChar); stdcall;
//Côté application
...
SetReadDataCallback(@ReadDataCallback);
procedure ReadDataCallback(ADataRead: PAnsiChar); stdcall;
begin
//faire quelque chose...
end;
//Côté DLL
GCallback: TMyCallback = nil;
procedure SetReadDataCallback(ACallback: TMyCallback);
begin
GCallback := ACallback;
end;
procedure OnDataRead(...)
begin
//ici on est dans le gestionnaire d'évènement...
//si assigné, on appelle le callback
if Assigned(GCallback) then
GCallback(PAnsiChar(TheData));
end; |
Partager