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