我有类似的东西:
[Setup]
ArchitecturesInstallIn64BitMode = {#MyArchInstallIn64BitMode}
[Code]
procedure CurStepChanged(CurStep: TSetupStep);
var
Value: String;
I: Integer;
LogList: TStringList;
begin
if (ArchitecturesInstallIn64BitMode = 'x64') then begin
//code
end else begin
//else code
end;
其中ArchitecturesInstallIn64BitMode是一个包含。如何将ArchitecturesInstallIn64BitMode传递给我的程序?我希望它被声明为一个字符串,所以我可以对它执行字符串操作
答案 0 :(得分:0)
根据您在问题中发布的代码,您可以这样做:
if '{#MyArchInstallIn64BitMode}' = 'x64' then begin
或者,鉴于这在编译时是固定的,您可以使用ISPP条件:
#if MyArchInstallIn64BitMode == "x64"
...
#endif
但是这种代码在开始时确实没有多大意义 - 它只是让你在编译时分开32-位和64位安装程序,完全不管用户实际拥有的内容。
查看Inno附带的64BitTwoArch.iss示例脚本,该脚本演示了如何制作适用于32位和64位安装的单个安装程序,这是首选方法。
即使这样,只有在您实际拥有32位和64位版本的应用程序时才有用。如果您的应用程序仅为32位(这是最常见的情况),那么您通常根本不需要做任何事情 - Inno的默认行为将在32位和64位上正确安装它视窗。