Bonjour
Je découvre un comportement inexplicable de TFileStream.create. Dans le code qui suit :
Le create fonctionne mais après son execution SaveFile est inacessible.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 function GetTempFile(Path : AnsiString):PAnsiChar; var s,f:string; SaveFile:array [0..MAX_PATH]of char; u:integer; fs:TFileStream; begin u:=Windows.GetTempFileName(PAnsiChar(Path),nil,0,SaveFile); if u=0 then result:='' else result:=SaveFile; end; procedure TForm1.Button6Click(Sender: TObject); var s,f:Ansistring; SaveFile:PAnsiChar; u:integer; fs:TFileStream; begin SaveFile:=GetTempFile(GetEnvironmentVariable('TEMP')); // Renvoie un PAnsiChar sur un nom de fichier temporaire fs:=TFileStream.create(SaveFile,fmOpenReadWrite);
Ce pointeur a été alloué par GetTempFileName mais pourquoi son usage le fait il disparaitre ?
Partager