爲什麼此代碼在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