#define
- директива препроцессора inno setup, находящаяся на этапе предварительной компиляции. Он работает так же, как препроцессор C.
Определяя переменную препроцессора, мы заставляем компилятор видеть сценарий после разрешения определений ispp:
Inno Setup Preprocessor (ISPP) - это дополнение для компилятора Inno Setup Джордана Рассела. С технической точки зрения, это дополнительный слой между GUI (ваш скрипт Inno Setup) и компилятором, который перед передачей текста перехватывает и модифицирует его так, как это сказано с помощью специальных директив в тексте скрипта.
Тем не менее, я не могу найти источник в документации, и у меня нет времени копаться в исходном коде, но я почти уверен, что переменные настройки inno не доступны в течение этого времени перед компиляцией.
Если вы просто хотите, чтобы определенная переменная содержала строку {commonappdata}
, используйте ее непосредственно в вашем источнике ... если вы хотите, чтобы определенная переменная имела значение времени выполнения commonappdata, кажется невозможным меня, потому что это значение определяется во время выполнения, поскольку его текущее значение зависит от целевого компьютера (версия Windows, язык и т. д.).
Если вы думаете об этом дважды, не имеет смысла пытаться использовать это значение во время предварительной компиляции или во время компиляции ... это всего лишь тот факт, который приводит к использованию констант inno, таких как {commonappdata}
, {destdir}
и тому подобное к существованию ... что вы можете выразить стандартным способом во время компиляции неизвестное, но значимое значение, которое будет известно и оценено во время выполнения.