![]() |
Re: Was ist eine Callback Funktion
Zitat:
Hättest du recht, wäre das IMO eine potenzielle Sicherkeitslücke. |
Re: Was ist eine Callback Funktion
Zitat:
(sondern von Projekten die in C++ entwickelt werden und als kleinsten gemeinsamen Nenner eine flache "C"-API anbieten müssen) |
Re: Was ist eine Callback Funktion
Zitat:
|
Re: Was ist eine Callback Funktion
So, ich habe das hier noch mal alles in einem Artikel auf meiner Homepage zusammengefasst:
![]() Der entsprechende Thread in der Tutorialsparte: ![]() |
Re: Was ist eine Callback Funktion
Rückruffunktionen werden auch bei Sortierverfahren eingesetzt. Beispiel: Ich will einen ganzen Haufen TAutos sortieren. Meine Sortierfunktion kann natürlich nicht wissen, nach welchen Kriterien ich meine Autos sortiert haben will, also übergebe ich eine Funktion, um diese Entscheidung zu treffen.
|
Re: Was ist eine Callback Funktion
Ah, sehr schöne Ergänzung.
|
Re: Was ist eine Callback Funktion
Hallo Luckie,
ich bin etwas verwirrt, bei mir funktioniert das hier nicht:
Delphi-Quellcode:
sondern nur das:
DoSomething(@Callback);
Delphi-Quellcode:
Fehler? Oder was mach ich falsch. Dem allgemeinen Verständnis nach müsste deine Version richtig sein.
DoSomething(Callback);
Rainer |
Re: Was ist eine Callback Funktion
Bei mir funktioniert beides. :shock: Aber eigentlich sollte, wenn ich es mir genau überlege, nach Elvis Methode nur zweitere funktionieren, da kein Zeiger mehr erwartet wird.
Eventuell sollte man es so machen:
Delphi-Quellcode:
function CallBack(i: Integer): Boolean; stdcall;
begin result := True; ShowMessage(IntToStr(i)); if i = 5 then result := False; end; type TCallbackProc = function(i: Integer): Boolean; stdcall; PCallbackProc = ^TCallbackProc; procedure DoSomething(cbp: PCallbackProc); stdcall; var i: Integer; CallbackProc: TCallbackProc; begin if Assigned(cbp) then begin @CallbackProc := cbp; for i := 0 to 9 do if not CallBackProc(i) then break; end; end; procedure TForm1.Button1Click(Sender: TObject); begin DoSomething(@Callback); end; |
Re: Was ist eine Callback Funktion
Zitat:
Dadurch entstehen Codefragmente wie ![]()
Delphi-Quellcode:
DllProcNext := TDLLProc(DllProc);
TDLLProc(DllProc) := LibraryProc; |
Re: Was ist eine Callback Funktion
Wie wäre es denn jetzt korrekt? Bzw. wie macht es Windows? Da wird ja auch immer ein zeiger erwartet.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:15 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz