为什么此代码在D2010中的结果:=缓冲区行中发生访问错误,但不是D7中的?为什么此代码在D2010中失败,但不是D7?
有些事情,我猜想,涉及UniCode,但编译器不会产生任何警告。
任何建议在优雅的解决方法?
编辑:Ouch:GetTempPath调用正在垃圾堆栈中,这是由于GetTempPath行后面的扩展名为空,但之前没有... 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”? “扩展”的拼写错误? – 2010-05-06 23:16:53