Ich experementiere gerade so etwas mit der obigen Funktion rum. Ich benutze dazu die Headerübersetzungen der Jedis. Hier mein Code der mir Probleme bereitet:
Delphi-Quellcode:
function GetUser(): string;
const
UNLEN = 256; // Maximum user name length (LmCons.h)
var
Size: DWORD;
begin
Size := UNLEN + 1;
SetLength(Result, Size);
if GetUserName(PChar(Result), Size) then
SetLength(Result, Size - 1)
else
Result := '';
end;
procedure TForm1.Button1Click(Sender: TObject);
var
sUser: String;
ui11: TUSERINFO11;
begin
sUser := GetUser();
NetUserGetInfo(nil, PWideChar(sUser), 11, ui11); {*}
Label1.Caption := ui11.usri11_name;
end;
In der mit * bezeichneten Zeile meint Delphi zu mir:
Zitat:
[Fehler] Unit1.pas(49): Die Typen der tatsächlichen und formalen Var-Parameter müssen übereinstimmen
Und den cast mit PWideChar nimmt er gerade mal so aus Höflichkiet an. Wie bekomme ich jetzt einen String in einen WideChar?