Pourquoi ce code obtient-il une erreur d'accès sur la ligne Result: = Buffer dans D2010, mais pas D7?Pourquoi ce code échoue-t-il dans D2010, mais pas dans D7?
Quelque chose, je suppose, impliquant UniCode, mais le compilateur ne génère aucun avertissement.
Des suggestions sur une solution de contournement élégante?
Édition: Ouch: l'appel GetTempPath est en train de détruire la pile comme en témoigne le fait que l'extension est vide après la ligne GetTempPath, mais pas avant ... Yikes.
function GetTempPathAndFileName(const Extension: string): string;
var
Buffer: array[0..MAX_PATH] of Char;
begin
repeat
GetTempPath(SizeOf(Buffer) - 1, Buffer);
GetTempFileName(Buffer, '~', 0, Buffer);
Result := Buffer; // <--- crashes on this line,
Result := ChangeFileExt(Result, Extension);
until not FileExists(Result);
end; { GetTempPathAndFileName }
"aExtension"? Typo pour "Extension"? –