Einzelnen Beitrag anzeigen

DocE

Registriert seit: 25. Mär 2004
108 Beiträge
 
#5

Re: Erklärung zu Code gesucht...

  Alt 2. Nov 2006, 20:19
Es wird ja kein Array benutzt. Die Länge des Strings (result) wird auf die maximal mögliche Länge eines Pfadnamens + 1 gesetzt (und damit der Speicher reserviert). Vereinfacht könnte man auch schreiben:

Delphi-Quellcode:
function GetWinDir: String;
var
  Size: DWORD;
begin
  Size := MAX_PATH + 1;
  SetLength(Result, Size);
  if GetWindowsDirectory(PChar(Result), Size) <> 0 then
    SetLength(Result, Size) // kann meines Erachtens weg
  else
    Result := '';
end;
Dann wird mit PChar(Result) die Adresse des Strings (im Speicher) an die Funktion "GetWindowsDirectory" übergeben, damit die dort den Pfad hineinschreiben kann.

Und eigentlich müsste es auch so klappen:

Delphi-Quellcode:
function GetWinDir: String;
var Size: DWORD;
begin
  Size := MAX_PATH + 1;
  SetLength(Result, Size);
  if GetWindowsDirectory(PChar(Result), Size) = 0 then
    Result := '';
end;

Grüsse
...Doc
  Mit Zitat antworten Zitat