加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

delphi – 为什么我会得到“预期的E2026常量表达式”?

发布时间:2020-12-15 09:49:10 所属栏目:大数据 来源:网络整理
导读:我必须在system32文件夹中移动一个文件,我使用了这段代码: //-----------FUNCTION----------------function GetWindowsSystemDir(): String;var vlBuff: Array[0..MAX_PATH-1] of Char;begin getSystemDirectory(vlBuff,MAX_PATH); Result := vlBuff;end;//
我必须在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

谢谢.

解决方法

正如编译器错误消息所指示的那样,它需要一个常量表达式来初始化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;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读