Установка может выполняться в одном из двух режимов:
32-разрядном или 64-разрядном. 64-разрядный режим установки будет
выбран, если пользователь использует 64-разрядную версию Windows и
архитектура процессора системы включена в значение директивы ArchitecturesInstallIn64BitMode
секции [Setup]. В противном случае используется 32-разрядный
режим установки.
Чем же различаются эти два режима работы? Главное
различие состоит в значениях констант, которые используются по
умолчанию.
В 32-разрядном режиме установки:
- Путь System32, возвращаемый константой {sys}, по умолчанию
ссылается на 32-разрядный каталог System.
- Константа {commonpf} эквивалентна константе {commonpf32}.
- Константа {commoncf} эквивалентна константе {commoncf32}.
- Секция [Registry] по умолчанию выполняет запись в
32-разрядном представлении реестра.
- Константа {reg:...} по умолчанию выполняет чтение из
32-разрядного представления реестра.
- Функции Reg* секции [Code] по умолчанию получают
доступ к 32-разрядному представлению реестра.
- Флаг useapppaths секции [Icons] считывает ключ
"App Paths" в 32-разрядном представлении реестра.
- Флаги regserver и regtypelib секции [Files]
по умолчанию выполняют загрузку и регистрацию файлов внутри
32-разрядного процесса.
- Флаг sharedfile секции [Files] по умолчанию
обновляет ключ "SharedDLLs" в 32-разрядном представлении реестра.
- Ключи деинсталляции создаются в 32-разрядном представлении реестра.
В 64-разрядном режиме установки:
- Путь System32, возвращаемый константой {sys}, по умолчанию
ссылается на 64-разрядный каталог System, если используется в секциях
[Dirs], [Files], [InstallDelete], [Run],
[UninstallDelete] и [UninstallRun]. Это связано с
тем, что программа установки/удаления временно отключает перенаправление
файловой системы WOW64
при доступе к файлам и папкам из этих секций. Где-нибудь в другом
месте System32 и {sys} ссылается на 32-разрядный каталог
System, как это обычно и происходит в 32-разрядном процессе.
- Константа {commonpf} эквивалентна константе {commonpf64}.
- Константе {commoncf} эквивалентна константе {commoncf64}.
- Секция [Registry] по умолчанию выполняет запись в
64-разрядном представлении реестра.
- Константа {reg:...} по умолчанию выполняет чтение из
64-разрядного представления реестра.
- Функции Reg* секции [Code] по умолчанию получают
доступ к 64-разрядному представлению реестра.
- Флаг useapppaths секции [Icons] считывает ключ
"App Paths" в 64-разрядном представлении реестра.
- Флаги regserver и regtypelib секции [Files]
по умолчанию выполняют загрузку и регистрацию файлов внутри
64-разрядного процесса.
- Флаг sharedfile секции [Files] по умолчанию
обновляет ключ "SharedDLLs" в 64-разрядном представлении реестра.
- Ключи деинсталляции создаются в 64-разрядном представлении реестра.