Forum: Win32/Win64 API (native code)
by Luckie,
12. Mär 2008
Ich habe das Beispiel geändert. Jetzt liegt der Thread-Parameter auf dem Stack. Damit dass das Betriebssystem den Stack aufräumt, hab eich mich wohl etwas ungenau ausgedrückt. Ich wollte damit ausdrücken, dass dies automatisch geschieht ohne dass man als zusätzlichen, eigenen Code dafür schreiben müsste, wie man es muss, wenn man den Parameter über den Heap übergibt.
Forum: Win32/Win64 API (native code)
by Luckie,
12. Mär 2008
Dass es ohne warten nicht funktionieren würde ist klar, aber das tue ich ja in meinem Fall. Und was das Freigeben angeht, der Speicher auf dem Stack wird beim Verlassen der Funktion automatisch vom Betriebssystem aufgeräumt. Habe ich das so richtig verstanden?
@sirius: Stimmt, hier ist sie ja global, also auf dem Heap. Dann muss ich das noch mal umbauen.
So sollte es eigentlich sein:
...
Forum: Win32/Win64 API (native code)
by Luckie,
12. Mär 2008
Ich kann einem Thread Parameter entweder über den Heap oder über den Stack mitgeben. Übergebe ich sie über den Heap, muss ich Speicher reservieren und im Thread natürlich wieder freigeben.
Aber wie funktioniert das, wenn ich die Parameter über den Stack übergebe? Siehe dazu das Beispiel. Wer gibt da wann und wie den Speicher wieder frei?
type
TThreadParams = packed record
Number:...