﻿# Урок 27\. Особенности создания инсталляторов для 64\-битного окружения

При разработке 64\-битной версии приложения дополнительное внимание стоит уделить и вопросу дистрибуции программы\. Ведь при установке на 64\-битной операционной системе есть несколько нюансов, забыв о которых можно получить неработающий инсталляционный пакет\.

Прежде всего, надо понимать, что сам дистрибутив программы \(exe\-файл, который запускает установку\) может быть технически как 32\-битным приложением, так и 64\-битным\. И если сделать этот дистрибутив 64\-битным, то он не запустится на 32\-битной системе\. Обратите внимание, что он не сможет выдать сообщение вроде: "Вы пытаетесь установить дистрибутив 64\-битной программы в 32\-битной системе"\. Он просто выдаст сообщение о поврежденном файле\. Таким образом, в большинстве случаев разумно делать инсталлятор всегда 32\-битным приложением, даже если устанавливаться он должен только на 64\-битной системе\.

Важным аспектом функционирования 32\-битных программ в 64\-битной среде является механизм перенаправления, реализованный в Windows\. Благодаря этому механизму старые 32\-битные приложения, которые пытались обратиться, к примеру, к папке "c:\\program files" автоматически будут обращаться к "c:\\program files \(x86\)"\. А доступ к некоторым секциям реестра также будет автоматически перенаправлен\.

Из\-за механизма перенаправления при разработке инсталляторов часто бывает, что либо файлы оказываются не там, где ожидает разработчик, либо записи в реестре относятся не к тем разделам\. Вы можете почитать о системе перенаправления в справочной системе MSDN: "[File System Redirector](https://msdn.microsoft.com/en-us/library/aa384187(VS.85).aspx)",

Все эти нюансы настраиваются в любом современном инсталляторе, но об этом надо не забыть при подготовке дистрибутива, совместимого с 64\-битными операционными системами\.

При разработке инсталляторов для 64\-битных версий часто делают один общий инсталлятор, который содержит в себе как 32\-битные версии приложений и компонентов, так и 64\-битные\. В этом случае надо не забыть положить полные наборы компонентов, а также библиотеки зависимостей\. Например, для приложений, разработанных с помощью Visual C\+\+, часто в комплект кладут Visual C\+\+ Redistributable Package\. Этот пакет необходимо брать как в версии для [x86](https://pvs-studio.ru/ru/blog/terms/0060/), так и в [x64](https://pvs-studio.ru/ru/blog/terms/0058/) варианте\.

Если инсталлятор использует какие\-то сторонние модули для реализации сложной функциональности, то следует помнить об ограничении\. Модули, собранные для 64\-битного режима, не могут подгружать 32\-битные динамические библиотеки и наоборот\.

_Авторы курса: Андрей Карпов \([karpov@viva64\.com](mailto:karpov@viva64.com)\), Евгений Рыжков \([evg@viva64\.com](mailto:evg@viva64.com)\)\._

_Правообладателем курса "Уроки разработки 64\-битных приложений на языке Си/Си\+\+" является ООО "Системы программной верификации"\. Компания занимается разработкой программного обеспечения в области анализа исходного кода программ\. [Сайт компании](https://pvs-studio.ru/ru/pvs-studio/)\._