Ошибка в Visual Studio 2017 / Windows 2012 - MFC не поддерживает WINVER меньше 0x0501

Когда я пытаюсь скомпилировать приложение Visual Studio C ++ 2017, x86 на сервере Windows 2012, я получаю следующую ошибку

Ошибка C1189 #error: MFC не поддерживает WINVER меньше 0x0501. Измените определение WINVER в свойствах вашего проекта или в предварительно скомпилированном заголовке. MyProject e: \ program files (x86) \ microsoft visual studio \ 2017 \ enterprise \ vc \ tools \ msvc \ 14.13.26128 \ atlmfc \ include \ afxv_w32.h 40

Я добавил приведенный ниже код в файл stadafx.h. Но это не решило проблему.

    #ifndef _WIN32_WINNT
    #define _WIN32_WINNT 0x601
    #endif

Как я могу убедиться, что мой код должен работать во всех операционных системах Windows, равных или выше, чем Windows 2012.

Проект => Свойства => C / C ++ => Значения предварительно скомпилированных заголовков пусты.

Тот же код работает, если я выбрал вариант сборки «Любой процессор». Пожалуйста, дайте мне знать правильную конфигурацию, спасибо


person Ku ttan    schedule 01.11.2018    source источник
comment
Не используйте #ifndef, если хотите на 100% убедиться, что вы его определяете, теперь вы получите предупреждение компиляции, когда переопределите его. И временно добавьте #error, он работает, чтобы убедиться, что этот файл .h действительно включен.   -  person Hans Passant    schedule 02.11.2018


Ответы (1)


Вы должны определить как _WIN32_WINNT, так и WINVER.

См. https://msdn.microsoft.com/en-us/library/6sehtctf.aspx

Я обычно помещаю определение в раздел "Определения препроцессора" свойств проекта. Помещение их в stdafx.h должно работать, если все ваши файлы cpp включают это как первое включение в файл.

person Sami Sallinen    schedule 01.11.2018