Forum: Object-Pascal / Delphi-Language
by idontknow,
9. Mai 2022
Ja, das das alles nicht der Stand der Technik sondern eher so Delphi-1-Style ist, weiß ich.
Es ging mir aber darum, eine vorhandene (Assembler-)-Methode so zu ersetzen, das sich die Aufrufkonventionen nicht ändern.
Was neues würd ich so nicht programmieren. Aber der Ehrgeiz, zu kapieren, wie das funktioniert, wollte gestillt werden...
Forum: Object-Pascal / Delphi-Language
by idontknow,
9. Mai 2022
Danke euch beiden!
Ah ja, ok: Mein pObjekt-Zeiger zeigt auf den lokalen Zeiger im Stack, der wiederum auf das Objekt im Heap zeigt. Nach Verlassen der Prozedur Test() wird der lokale Zeiger abgeräumt (das war mir vorher nicht wirklich klar), mein pObjekt-Zeiger wird in Zukunft auf die nächste Variable, die auf dem Stack erzeugt wird, zeigen, und auf das eigentliche Objekt im Heap zeigt gar...
Forum: Object-Pascal / Delphi-Language
by idontknow,
8. Mai 2022
Naja, das ist doch ein Objekt und keine einfache lokale Integer-Variable oder so...
Und ein Objekt, das nicht freigegeben wird, sollte doch für immer und ewig im Speicher liegen?
Ich dachte immer, bei Delphi wird nichts automatisch aufgeräumt?
Forum: Object-Pascal / Delphi-Language
by idontknow,
8. Mai 2022
Weil ich in einer Anwendung eine Methode ersetzen will, die bereits existent ist und an vielen Stellen verwendet wird. Das Ding selbst ist in Assembler geschrieben und gibt mir einen Pointer auf ein Objekt zurück.
Das muss doch auch in Pascal irgendwie gehen? Und wieso verschwindet das Objekt, obwohl niemand es freigibt?
Forum: Object-Pascal / Delphi-Language
by idontknow,
8. Mai 2022
Moin.
Ich stell mich gerade zu blöd an, finde aber den Fehler nicht:
Ich versuche gerade, mir von einer Prozedur einen Zeiger auf ein in der Prozedur erzeugtes Objekt zurückgeben zu lassen.
Offenbar zeigt der Zeiger unmittelbar nach Rückkehr auf das Objekt mit dem richtigen Inhalt (1234).
Sobald dann ein neues Objekt (egal was) erzeugt wird, wird offenbar mein in der Prozedur...