Einzelnen Beitrag anzeigen

Benutzerbild von Dalai
Dalai
Online

Registriert seit: 9. Apr 2006
1.680 Beiträge
 
Delphi 5 Professional
 
#2

AW: Wie Speicherleck beheben (GetWindowsLanguage)?

  Alt 8. Jul 2020, 10:59
Da steht nichts von Speicherleck (Memory leak) sondern was von Speicherkorrumpierung (Memory Corruption).

Das liegt mit Sicherheit daran, dass der Größenparameter bei GetMem in Bytes anzugeben ist, GetLocaleInfo aber die Anzahl Zeichen zurückgibt. Du musst also deinen Buffer mit der Größe von Char multiplizieren:
Delphi-Quellcode:
GetMem(Buffer, Size * SizeOf(Char));
_
Nur nebenbei: MS schreibt zu GetLocaleInfoEx:
Zitat:
Starting with Windows Vista, your applications should not use LOCALE_ILANGUAGE in the LCType parameter to avoid failure or retrieval of unexpected data. Instead, it is recommended for your applications to call GetLocaleInfoEx.
Ist völlig bescheuert, dass die schreiben, man solle genau diese Funktion rufen, aber das wird wohl ein Dokumentationsfehler sein.

Grüße
Dalai
  Mit Zitat antworten Zitat