Einzelnen Beitrag anzeigen

berens

Registriert seit: 3. Sep 2004
434 Beiträge
 
Delphi 10.4 Sydney
 
#1

Exception beim Ermitteln des TEMP-Ordners unter Delphi 2010

  Alt 15. Apr 2010, 15:00
Hallo mal wieder!

Anhand von diesem Tip: http://www.swissdelphicenter.ch/de/showcode.php?id=385 habe ich mir die Prozedur für den TEMP-Ordner zusammengestückelt. Unter Delphi 2007 problemlos. Unter 2010 kommt beim Ausführen die Exception
Zitat:
---------------------------
Benachrichtigung über Debugger-Problem
---------------------------
In Projekt C:\test\Project1.exe trat ein Problem mit folgender Meldung auf: 'access violation at 0x00000000: read of address 0x00000000'. Prozess angehalten. Mit Einzelne Anweisung oder Start fortsetzen.
---------------------------
OK
---------------------------
Teilweise mit dem Zusatz "Es traten zu viele Exceptions in kurzer Folge auf" (oder ähnlich).

Delphi-Quellcode:
function Test1: string;
var
  Buffer: array[0..MAX_PATH] of Char;
begin
  GetTempPath(SizeOf(Buffer) - 1, Buffer);
  Result := Buffer;
end;

procedure TForm2.Button1Click(Sender: TObject);
begin
   Caption := Test1;
end;
1) Kann das jemand nachvollziehen
2) Mache ich was falsch? Wohl ja, irgendwelche Pointer sind nicht initialisiert oder so?
3) Gibt es einen alternativen Weg, den TEMP-Ordner als String zu bekommen?

Danke im Vorraus,
Mathias

Edit: Ich würde ja fast vermuten: SetLength(Result, MAX_PATH); , aber seit wann muss einem String Speicher zugewiesen werden?
  Mit Zitat antworten Zitat