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

Compile Errors upgrading ATL project from vs2010 to vs2013

本文关键字:vs2013 vs2010 错误 ATL 项目 编译      更新时间:2023-10-16

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

HMONITOR is not defined

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

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

由于这是一个非常古老的遗留项目,问题在于stdafx.h文件中windows的目标版本

从MSDN

Visual c++不再支持Windows 95, Windows 98,如果你的WINVER或_WIN32_WINNT宏是分配给这些Windows版本之一时,您必须修改宏。方法创建的项目升级时在早期版本的Visual c++中,您可能会看到与编译错误相关的错误WINVER或_WIN32_WINNT宏,如果它们被分配给一个版本

所以改变

#ifndef WINVER  
#define WINVER 0x0400   
#endif

#ifndef WINVER  
#define WINVER 0x0500
#define _WIN32_WINNT 0x0500
#endif

更正构建问题