Forum: Programmieren allgemein
by himitsu,
27. Feb 2020
Bei einer harten Typkonvertierung wird der Typ der Variable direkt geändert und man sagt dem Compiler das ist jetzt so. (der Compiler macht da nur noch eine Prüfung auf die Speichergröße der Typen) und zur Laufzeit ist das dann alles direkt so.
bei der "weichen" Konvertierung prüft er Compiler nur auf Verwandtschaft von Variablen-Typ und Zieltyp und zur Laufzeit wird eine Funktion aufgerufen,...
Forum: Programmieren allgemein
by himitsu,
25. Feb 2020
ActionLink.Action.ActionComponent ?
Wenn das nicht hilft, dann könnte man sich noch aus ActionLink.OnChange das Objekt des Methoden-Zeigers extrahieren.
Forum: Programmieren allgemein
by himitsu,
25. Feb 2020
Form1 oder acDateiSpeichern ist dann wohl nil/ungültig.
Forum: Programmieren allgemein
by himitsu,
25. Feb 2020
Ja, das Mischen war Absicht, um besser erkennen zu können was wo damit gekeint ist.
NativeInt für den Pointer-Cast und Integer für die Size.
Nochmal überlegt wäre in Bezug auf 64 Bit IntPtr für Pointer-Cast und NativaInt für die Size wohl besser, falls doch jemand einen Speicherblock größer als 2 bzw. 4 GB reservieren will.
Allert?
Upsss, keine Ahnung ... da hab ich wohl geschlafen,...
Forum: Programmieren allgemein
by himitsu,
25. Feb 2020
Sowas kann man per se sich auch selbst schnell bauen.
Eigentlich würde es reichen, wenn man das FreeMemory überschreibt und dort den Inhalt "zerstört", dann werden Zugriffe nach dem Free fehlschlagen.
Der wichtige Teil ist natürlich das FillMemory/FillChar. :zwinker:
function MyFreeMem(P: Pointer): Integer;
begin
FillMemory(P, UnknownSize, $A5); // 1010 0101 = HighBit + Odd
Result :=...
Forum: Programmieren allgemein
by himitsu,
24. Feb 2020
Im Delphi ist schon länger FastMM drin, aber nur in einer kleinen Version.
Außer dem einfachen MemoryLeak-Test, den man per Variable aktivieren kann, fehlt der Rest.
Beim großen FastMM kann man eben auch beim Freigeben von OLbjekten/Pointern ein Überschreiben aktivieren, was spätere Zugriffe erkennen lässt.
Normal wird Speicher ja nicht sofort freigeben und man kann nach dem Free/Destroy...