010
09.11.2005, 11:21 Uhr
ao
(Operator)
|
Also, erstens hat eine DLL *keinen* eigenen Stack. Die Applikation hat einen Stack, oder, wenn die App mehrere Threads startet, dann hat jeder Thread einen eigenen. Funktionen aus DLLs laufen auf dem Stack, auf dem ihr Aufrufer läuft, und für einen Stack ist es bedeutungslos, ob eine aufgerufene Funktion direkt von der App mitgebracht oder aus einer DLL geladen wird.
Falls in der DLL ein Thread gestartet wird, hat der demnach einen eigenen Stack, aber nicht wegen der DLL, sondern weil es ein Thread ist.
Zitat: |
Ich kann ja einfach die Adressen der lokalen Variablen hernehmen und habe damit die aktuellen Speicheradressen des Stacks..
|
Ich versteh nicht, wie dir das weiterhilft. Du hast die Adressen der lokalen Objekte und kannst dadurch abschätzen, wieviel Stack ein rekursiver Aufruf belegt, aber du weißt noch nicht, wie viele Aufrufe noch auf dem verbleibenden Stack Platz haben.
ao |