我有一个 C++ 项目引用了许多其他项目/库。这是针对多年前创建的应用程序。大约每年更新一次并完成新版本。我多年来一直使用 Visual Studio 6 更新和构建此应用程序的新版本,没有出现任何问题。
我正在尝试切换到 Visual Studio 10(现在是 VS2013)。最初,我遇到了一些警告和错误,这些警告和错误是由于 VS 版本之间的兼容性问题造成的。我能够照顾大部分。但是,我仍然对以下错误感到有些困惑:
error C1189: #error : MFC does not support WINVER less than 0x0501. Please change the definition of WINVER in your project properties or precompiled header. C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\atlmfc\include\afxv_w32.h
该错误发生在一些引用的项目库中。我检查了相关项目库,但找不到任何对 WINVER 的引用。
我在互联网上搜索了这方面的信息并找到了一些主题,但没有任何内容专门针对我的问题。有人可以阐明这里可能发生的情况吗?
提前致谢。
洛杉矶
所有 MFC 应用程序都定义WINVER
如果您自己没有定义宏值,则它会在某处。我假设 MS 已经默认删除了它自己的头文件中的定义,并且现在强制要求您显式定义它。
因此,要解决您的问题,要么将#define
在“预处理器”编译器选项中,或在预编译头的顶部(即 stdafx.h)。
Note 0x501
是Windows XP支持。0x600
是维斯塔,0x601
是 Windows 7 — 我为记住这一点而感到多么难过!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)