如何使用代码中[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;
谢谢你的帮助!
答案 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
常量的值到最终脚本。