Проблема Нужна помощь!

SBalykov

Старожил
Ребята, подскажите, пожалуйста как правильно прописать предопределенную переменную в препроцессор Inno Setup для корректного определения 32-битной или 64-битной системы.
У меня голова не соображает, что я делаю не так.

Код:
#define DefGr = (Defined IsWin64) ? "{code:GetGroup64}" : "{code:GetGroup32}"
[Setup]
DefaultGroupName ={#DefGr}
 
Последнее редактирование:

Shegorat

Lord of Madness
Администратор
@SBalykov
Вам нужно, чтобы переменная подставлялась при установке или при компиляции?
Используя препроцессор, переменная будет подставляться при компиляции, в зависимости от текущей разрядности системы, на которой собирается инсталлятор.
Чтобы переменная подставлялась при установке, её нужно подставлять функцией из кода
#{code:MyFunc}
И уже в самой функции проверять разрядность системы.
 

SBalykov

Старожил
@SBalykov
Вам нужно, чтобы переменная подставлялась при установке или при компиляции?
Используя препроцессор, переменная будет подставляться при компиляции, в зависимости от текущей разрядности системы, на которой собирается инсталлятор.
Чтобы переменная подставлялась при установке, её нужно подставлять функцией из кода
#{code:MyFunc}
И уже в самой функции проверять разрядность системы.
Да, спасибо, уже понял.
Код:
#define DefGr "{code:GetDefGroup}"

[setup]
DefaultGroupName ={#DefGr}

[_code]
function GetDefGroup(const Name: String): String;
begin
If IsWin64 then
    Result := ExpandConstant('{code:GetGroup64}') else
    Result := ExpandConstant('{code:GetGroup32}');
end;
 
Последнее редактирование:
Сверху