如何使用代码中[Setup]部分的值?

时间:2014-03-14 14:39:32

标签: inno-setup

如何使用代码中[Setup]部分的值?

我怀疑我使用的工具不正确;也许我应该以完全不同的方式做到这一点。

[Setup]
MyValue=some value

[code]

function InitializeSetup(): Boolean;
begin
  // blank
  MsgBox(GetEnv('MyValue'), mbError, MB_OK);

  // no expansion occurs
  MsgBox(ExpandConstant('MyValue'), mbError, MB_OK);

  // unknown constant "MyValue".
  MsgBox(ExpandConstant('{MyValue}'), mbError, MB_OK);

  Result := true;
end;

谢谢你的帮助!

1 个答案:

答案 0 :(得分:1)

您无法在[Setup]部分声明变量。此部分可能只包含一组预定义的指令。如果您的目标是定义一个可以在脚本部分条目以及脚本编码[Code]部分中使用的常量,那么您正在寻找由#define指令声明的预处理器变量。例如:

#define MyValue "some value"

[Setup]
AppName={#MyValue}
AppVersion=1.5
DefaultDirName={pf}\My Program

[INI]
Filename: "MyProg.ini"; Section: "InstallSettings"; Key: "InstallPath"; String: "{#MyValue}"

[Code]
function InitializeSetup: Boolean;
begin
  Result := True;
  MsgBox('{#MyValue}', mbInformation, MB_OK);
end;

{#MyValue}语句背后的实际情况是预处理器emits定义的MyValue常量的值到最终脚本。