Einzelnen Beitrag anzeigen

HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
961 Beiträge
 
Delphi 6 Professional
 
#4

AW: GetUsername unter Windows 10

  Alt 16. Nov 2015, 22:58
Hmm..
besser so

Delphi-Quellcode:
function GetUsername: String;
var
  Buffer: array[0..256] of Char; // UNLEN (= 256) +1 (definiert in Lmcons.h)
  Size: DWord;
begin
  Size := length(Buffer); // length stat SizeOf, da Anzahl in TChar und nicht BufferSize in Byte
   if not Winapi.Windows.GetUserName(Buffer, Size) then
    RaiseLastOSError;
  SetString(Result, Buffer, Size - 1);
end;
Lt.
https://msdn.microsoft.com/de-de/lib...(v=vs.85).aspx

ist Size die Länge in TChars, nicht in Bytes...

SizeOf liefert bei Unicode aber nicht die 256 Chars, sondern 515 Bytes zurück, somit 512 TChars...
  Mit Zitat antworten Zitat