Google подсказал мне, что можно скомпилировать код в один исполняемый файл, который будет работать как 32-разрядный в 32-разрядной ОС и как 64-разрядный в 64-разрядной ОС< /сильный>. Действительно ли исполняемый файл может определить свою разрядность во время выполнения?
В моем случае целевыми системами будут Windows 7 Professional x64
и Windows XP SP3 x86
.
Итак, что я читал в различных статьях (я думаю, что были даже ответы на похожие темы на SO), так это то, что нужно перейти к Configuration Manager
Soltuion
(ПКМ на решение -> Диспетчер конфигурации strong>) и установите для параметра Platform
значение Любой процессор.
Теперь во всех этих статьях описывалась установка для более старых версий MSVS или MSVC++, но я думаю, что нет серьезных изменений в Configuration Manager
в версии RC 2013 (которую я только что установил).
В раскрывающемся списке Active Solution
у меня нет параметра Any CPU
, поэтому я следовал этому рецепту , который я нашел на SO. Следование этому небольшому руководству в моем случае не помогло, у меня все еще нет возможности выбрать Any CPU
при выполнении шага 5:
- 5) Убедитесь, что в разделе «Новая платформа» выбран «Любой процессор». Если на шаге 3 не было платформы решения Any CPU, убедитесь, что установлен флажок «Создать новую платформу решений». Затем нажмите ОК.
Мне доступны элементы раскрывающегося списка x64
и ARM
(тоже Win32
, но он уже добавлен по умолчанию), я не могу выбрать Any CPU
.
Добавление целевой платформы x64
и компиляция исполняемого файла работают нормально, программа запускается как 64-битная в Windows 7 x64, но, конечно, ее нельзя запускать на 32-битной машине с Windows XP.
Как установить целевую платформу Any CPU
в Microsoft Visual Studio Professional 2013 RC?