【问题标题】:Error on Visual Studio 2017/Windows 2012 - MFC does not support WINVER less than 0x0501Visual Studio 2017/Windows 2012 上的错误 - MFC 不支持小于 0x0501 的 WINVER
【发布时间】:2018-11-01 19:00:08
【问题描述】:

当我尝试在 Windows 2012 服务器上编译我的 Visual Studio C++ 2017、x86 应用程序时,我收到以下错误

错误 C1189 #error: MFC 不支持小于 0x0501 的 WINVER。 请在您的项目属性中更改 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 2012 的 windows 操作系统中运行。

Project => Properties=> C/C++ => Precompiled Headers 值为空。

如果我选择“任何 CPU”构建选项,则相同的代码可以工作。 请告诉我正确的配置, 谢谢

【问题讨论】:

  • 当你想 100% 确定你定义它时,不要使用#ifndef,你现在在重新定义它时会收到编译警告。并临时添加 #error "it works" 来验证这个 .h 文件是否真的被包含在内。

标签: visual-c++ visual-studio-2017 windows2012


【解决方案1】:

您应该同时定义 _WIN32_WINNT 和 WINVER。

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

我通常把定义放在项目属性的预处理器定义部分。如果您的所有 cpp 文件都将其作为第一个包含在文件中,则将它们放入 stdafx.h 应该可以。

【讨论】:

    猜你喜欢
    • 2015-03-20
    • 2018-05-18
    • 2018-09-23
    • 2017-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-12
    相关资源
    最近更新 更多