当从Visual Studio 2013构建中的Microsoft ATL库中包含atlwin.h时,将导致关于未定义元素的大量编译器错误.
即
#includeclass MainWnd : public CWindowImpl {};
"CWindowImpl:未定义基类"错误.
要么
HMONITOR没有定义
使用VS2010构建时不会发生这种情况.
我该如何解决这个问题?
问题在于stdafx.h文件中的目标Windows版本
来自MSDN
Visual C++不再支持Windows 95,Windows 98,Windows ME或Windows NT.如果将WINVER或_WIN32_WINNT宏分配给其中一个版本的Windows,则必须修改宏.升级使用早期版本的Visual C++创建的项目时,如果将它们分配给不再受支持的Windows版本,则可能会看到与WINVER或_WIN32_WINNT宏相关的编译错误.
所以,改变
#ifndef WINVER #define WINVER 0x0400 #endif
至
#ifndef WINVER #define WINVER 0x0500 #define _WIN32_WINNT 0x0500 #endif
纠正了构建问题