我必须在system32文件夹中移动一个文件,我使用了这段代码:
//-----------FUNCTION----------------
function GetWindowsSystemDir(): String;
var
vlBuff: Array[0..MAX_PATH-1] of Char;
begin
getSystemDirectory(vlBuff, MAX_PATH);
Result := vlBuff;
end;
//-----------------------------------
const
SMyFile = GetWindowsSystemDir+'\intructions.txt'; //error here, line 87
var
S: TStringList;
begin
S := TStringList.Create;
try
S.Add('intructions');
S.SaveToFile(SMyFile);
finally
S.Free;
end;
end;
编译时给我错误:
[DCC Error] Unit1.pas(87): E2026 Constant expression expected
感谢。
答案 0 :(得分:14)
正如编译器错误消息所示,它需要一个常量表达式来初始化const。但是你在那里调用一个函数,编译器不会在编译时对它进行评估。
声明一个变量,并将其分配到代码的常规开始结束块中:
var
SMyFile: string;
S: TStringList;
begin
S := TStringList.Create;
try
S.Add('intructions');
SMyFile := GetWindowsSystemDir+'\intructions.txt';
S.SaveToFile(SMyFile);
finally
S.Free;
end;
end;