Wenn, dann aber Array of Char, und nicht PChar, oder?
Jedenfalls ist es das was System.SysUtils auch macht:
Delphi-Quellcode:
function GetLocaleStr(Locale, LocaleType: Integer; const Default: string): string;
{$IFDEF MSWINDOWS}
var
L: Integer;
Buffer: array[0..255] of Char;
begin
L := GetLocaleInfo(Locale, LocaleType, Buffer, Length(Buffer));
if L > 0 then SetString(Result, Buffer, L - 1) else Result := Default;
end;
{$ENDIF MSWINDOWS}