Thema: Delphi Falsche Speicherbereiche

Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#7

Re: Falsche Speicherbereiche

  Alt 22. Okt 2004, 10:41
Obacht !
Sobald die Funktion SetDetails verlassen wird, zeigt result.usri3_name ins Nirvana (ungültiger Speicherbereich).
Delphi-Quellcode:
function SetDetails: TUserInfo3;
begin
  ZeroMemory(@result, sizeof(result));
  result.usri3_name := PWideChar(WideString(GetText(ID_EDT_USER)));
Mag sein, dass result.usri3_name noch auf sinnvolle Daten zeigt;
aber die Daten können jederzeit durch andere Daten überschrieben werden.
Du brauchst 2 Strukturen:
eine mit zeigerlosen Delphi-Datentypen und eine passend zu USER_INFO_3.

Im Betrag http://www.delphipraxis.net/internal...ct.php?t=31191 siehst wie das gemeint ist.

Übrigens: die MSDE sagt du sollst USER_INFO_4 nehmen:
The USER_INFO_3 structure contains information about a user account, including the account name, password data, privilege level, the path to the user's home directory, relative identifiers (RIDs), and other user-related network statistics.
It is recommended that you use the USER_INFO_4 structure instead.
Andreas
  Mit Zitat antworten Zitat