Можно ли создать новый проект Win32 C++ в VS2010, который не будет нацелен на .NET Framework? Visual Studio, похоже, отказывается создавать проект, если в качестве цели не выбрана хотя бы одна версия .NET Framework. Также отказывается загружать проект, если на компьютере не установлен .NET, даже если файлы SLN/VCXPROJ не содержат ссылок на .NET. Если .NET не установлен, Visual Studio по-прежнему требует выбрать версию .NET Framework, но поскольку версий нет, она отказывается создавать новый проект. Но что, если я хочу, чтобы мое приложение не имело ничего общего с .NET и работало на компьютере, на котором не установлена .NET? (Я использую операционную систему Windows XP, хотя это не должно иметь значения).
Я предпринял следующие шаги:
Под New Project выберите Visual C++ -> Win32 -> Win32 Project (или что-то подобное — у меня не 2010).
У вас может не быть поддержки компилятора для собственных образов.
@xcvbnm «собственные образы» == неуправляемые, без .NET. В диалоговом окне «Новый проект» выберите Visual C++ в разделе «Установленные шаблоны», затем «Win32», затем «Консольное приложение Win32» или «Проект Win32». Если у вас их нет/не видно, измените установку и добавьте недостающие части.
«Возможно, компилятор не поддерживает встроенные образы, но это не имеет значения, потому что мое приложение не .NET». Это не «не имеет значения»; нативные изображения — это именно то, что вы пытаетесь сделать.
@xcvbnm 1. У меня нет под рукой машины без установленного .NET. Тем не менее, я никогда не получал запросов о версиях .NET при создании неуправляемого проекта C++ и никогда этого не делал. Не могли бы вы опубликовать скриншот этого конкретного диалога или подсказки. 2. Тогда правильным выбором будет Win32 Project. 3. Связанная страница посвящена «оптимизации сборок .NET Framework», которая не применяется при создании неуправляемых проектов C++. Как правило, «собственный» означает код, скомпилированный в собственные машинные инструкции, в отличие от «управляемого», который компилируется в промежуточный язык (в данном случае MSIL).
[tl;dr] Необходимым условием для Visual Studio 2010 является .NET Framework 4.0. Программа установки VS 2010 устанавливает его при необходимости, и среда IDE не будет работать правильно, если компоненты .NET впоследствии будут удалены вручную. Неуправляемые приложения C++ по-прежнему можно создавать вне среды IDE без установки .NET, а полученные двоичные файлы не зависят от .NET во время выполнения. Исправление установки VS 2010 восстанавливает компоненты .NET и заставляет IDE работать должным образом.
Следующее было опробовано на чистой машине XP SP3 (виртуальной) с новой установкой VS 2010.
Программа установки перечисляет .NET 4.0 как необходимое условие и при необходимости устанавливает его.
Удаление компонентов .NET 4.0 вручную из меню "Установка и удаление программ" приводит к поломке среды IDE.
После восстановления установки IDE снова заработает. В диалоговом окне «Новый проект» есть раскрывающийся список версий .NET Framework верхнего уровня, в котором по умолчанию используется .NET Framework 4, применимый ко всем типам проектов. включая неуправляемые проекты C++. Однако этот выбор не имеет отношения к неуправляемым проектам, которые не нацелены, не используют или иным образом не требуют .NET.
Надеюсь, это поможет, и в любом случае это было слишком долго для комментария. В вашей настройке все еще должно быть что-то другое, поскольку вы можете добраться до диалогового окна «Новый проект» без установленного .NET, в то время как VS даже не запустится без него в моей тестовой установке. Но это трудно отследить без (много) дополнительного контекста.
Да, конечно, это возможно. В конце концов, Visual Studio существовала для разработки Win32 задолго до изобретения .NET. Похоже, вы с самого начала создаете неправильный тип проекта. Пожалуйста, отредактируйте свой вопрос, чтобы указать точные шаги, которые вы предпринимаете.