7

你知道为什么在声明local const vars时,脚本无法编译吗?抱歉,我对帕斯卡知之甚少,无法弄清楚为什么这不起作用!

这个例子(见函数 CircleArea)表明我的语法应该没问题。 http://www.tutorialspoint.com/pascal/pascal_quick_guide.htm

这就是我想要做的:

//---placed within [Code]
procedure MyLog(const _functionName, _msg: String);
begin
  Log(_functionName + '(): ' + _msg);
end;

function MyExec(const _filename, _params, _dir: String): Boolean;
const // <--- compilation fails in this line!
  MethodName = 'MyExec';
var
  ResultCode: Integer;
begin
  MyLog(MethodName, _filename);
  // ... invoke Exec(), etc. ...
end;
//---
4

1 回答 1

12

你在尝试那是对的。如果 Inno Setup 使用 Pascal,它甚至可以工作,但由于它基于自定义Pascal Script语言,限制声明局部常量,所以你不能那样做。您必须改为全局定义常量:

[Code]
const
  MethodName = 'MyExec';

function MyExec(const _filename, _params, _dir: String): Boolean;
var
  ResultCode: Integer;
begin
  MyLog(MethodName, _filename);
  // ... invoke Exec(), etc. ...
end;
于 2013-09-12T17:58:04.977 回答