AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Falsche Speicherbereiche

Ein Thema von Luckie · begonnen am 21. Okt 2004 · letzter Beitrag vom 22. Okt 2004
Antwort Antwort
Benutzerbild von Motzi
Motzi

Registriert seit: 6. Aug 2002
Ort: Wien
598 Beiträge
 
Delphi XE2 Professional
 
#1

Re: Falsche Speicherbereiche

  Alt 22. Okt 2004, 11:17
Nein, shmia hat nicht recht, der Compiler nimmt da alle nötigen Zwischenschritte vor.. ich hab am Anfang auch das als Fehlerursache im Aug gehabt und einiges entsprechend umgestellt, der Fehler blieb aber.

Inzwischen hab ich festgestellt, dass der Fehler wirklich bei den Typecasts lag, allerdings nicht auf Delphi-Seite, sondern auf API-Seite. In dem Prog wird recht oft von String auf WideString und PWideString gecastet. Bei jedem dieser Casts werden intern vom Compiler entsprechende Zwischenschritte durchgeführt die mit den APIs SysAllocStringLen und SysFreeString arbeiten. Ganz erklären kann ich es nicht, aber offensichtlich kommt mit den vielen Typecasts und damit verbundenem Speicher allozieren/deallozieren der Memory-Manager dieser APIs durcheinander, jedenfalls liefert beim 2ten Typecast die API-Funktion SysAllocStringLen als Ergebnis einen Zeiger auf dieselbe Adresse zurück auf die auch ein Feld von UserInfo zeigt. An genau dieser Stelle wurde zuvor bereits ein andrer WideString durch einen entsprechenden Typecast und Aufruf von SysAllocStringLen abgelegt. Offensichtlich versucht der Memory-Manager den Speicher wiederzuverwenden, nur dass in diesem Fall eben an dieser Stelle noch ein andrer String liegt.
Manuel Pöter
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:47 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