Einzelnen Beitrag anzeigen

Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#6
  Alt 2. Jul 2003, 01:57
Moin Luckie,

+1 kann nicht schaden, da WM_GETTEXTLENGTH die Länge ohne terminierende Null zurückgibt, wohingegen WM_GETTEXT gerne die Anzahl inclusive der Null hätte.... aber:
Ist der Buffer zu klein für den Text, wird halt weniger kopiert => keine AV.

Der Fehler im ersten Beispiel liegt wohl im length(szText).
Da Du den Speicher mit GetMem reservierst, wird dieser nicht initialisiert. Length auf einen PChar angewendet liefert allerdings die Anzahl Zeichen bis, exklusive, der ersten Null zurück.
Da ja eigentlich genügend Speicher für den enthaltenen Text reserviert war hätte das zwar nicht stören dürfen, ist aber doch ein gewisser Unsicherheitsfaktor.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat