当在Visual Studio 2013中包含来自Microsoft ATL库的atlwin.h时,可能会导致许多关于未定义元素的编译器错误。
HMONITOR is not defined
使用VS2010构建时不会发生这种情况。
由于这是一个标准的MS头文件,因此缺少类错误似乎没有意义。
答案 0 :(得分:6)
由于这是一个非常古老的遗留项目,问题在于stdafx.h文件中目标版本的Windows
来自MSDN
Visual C ++不再支持Windows 95,Windows 98, Windows ME或Windows NT。如果您的WINVER或_WIN32_WINNT宏是 分配给其中一个版本的Windows,您必须修改 宏。升级使用a创建的项目时 在早期版本的Visual C ++中,您可能会看到相关的编译错误 如果它们被分配给版本,则为WINVER或_WIN32_WINNT宏 不再支持的Windows。
所以,改变
#ifndef WINVER
#define WINVER 0x0400
#endif
到
#ifndef WINVER
#define WINVER 0x0500
#define _WIN32_WINNT 0x0500
#endif
纠正构建问题