Registriert seit: 29. Mai 2002
37.621 Beiträge
Delphi 2006 Professional
|
Re: LookupAccountSidW und Datenbereich zu klein
7. Mär 2007, 13:55
marabu hat hier http://www.delphipraxis.net/internal...=691954#691954 folgenden Vorscchlag gemacht:
Delphi-Quellcode:
function StrSIDToName(const StrSID: Widestring; var Name: WideString; var SIDType: DWORD): DWORD;
var
SID : PSID;
Buffer : PWideChar;
NameLen, TempLen : Cardinal;
ErrSuccess : Boolean;
begin
SID := nil;
ErrSuccess := ConvertStringSIDToSID(PWideChar(StrSID), SID);
if ErrSuccess then
begin
NameLen := 0;
TempLen := 0;
LookupAccountSidW(nil, SID, nil, NameLen, nil, TempLen, SIDType);
if NameLen > 0 then
begin
GetMem(Buffer, NameLen + 2);
try
ErrSuccess := LookupAccountSidW(nil, SID, Buffer, NameLen, nil, TempLen, SIDType);
if ErrSuccess then
begin
SetString(Name, Buffer, Namelen);
SetLastError(0);
end;
finally
FreeMem(Buffer);
end;
end;
end;
if Assigned(SID) then
LocalFree(Cardinal(SID));
result := GetLastError;
end;
Das Problem bleibt aber das gleiche, beim zweiten Aufruf fliege ich einfach ohne Fehlermeldung aus dem Programm.
Michael Ein Teil meines Codes würde euch verunsichern.
|
|
Zitat
|