Hmm..
Mal ganz blöd gefragt:
Welches TNetResource \ WNetAddConnection2 wird verwendet?
TNetResourceA + WNetAddConnection2A
TNetResourceW + WNetAddConnection2W
Hier solltest Du besser expliziet angeben, welches der beiden verwendet wird und dann am besten auch gleich
TNetResourceW + WNetAddConnection2W
Du castes mal einen WideString mit PChar
NetRes.lpRemoteName := PChar(path);
und mal den Lazarus UTF8 string
tempres := WNetAddConnection2(NetRes, PChar(Password), PChar(User), dwFlags);
Besser
Delphi-Quellcode:
function TTools.Logon(Drive: String; Path: WideString; User, Password:WideString; TemporaryOnly : boolean):Cardinal;
var
NetRes : TNetResourceW;
..
NetRes.lpRemoteName := PWideChar(path);
..
begin
tempres := WNetAddConnection2W(NetRes, nil, nil, dwFlags);
end else
begin
tempres := WNetAddConnection2W(NetRes, PWideChar(Password), PWideChar(User), dwFlags);
end;