编译将ATL项目从vs2010升级到vs2013的错误

时间:2014-05-13 20:16:59

标签: c++ visual-studio-2010 visual-studio-2013 atl

当在Visual Studio 2013中包含来自Microsoft ATL库的atlwin.h时,可能会导致许多关于未定义元素的编译器错误。

HMONITOR is not defined

使用VS2010构建时不会发生这种情况。

由于这是一个标准的MS头文件,因此缺少类错误似乎没有意义。

1 个答案:

答案 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

纠正构建问题