Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/126.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 将ATL项目从vs2010升级到vs2013时出现编译错误_C++_Visual Studio 2010_Visual Studio 2013_Atl - Fatal编程技术网

C++ 将ATL项目从vs2010升级到vs2013时出现编译错误

C++ 将ATL项目从vs2010升级到vs2013时出现编译错误,c++,visual-studio-2010,visual-studio-2013,atl,C++,Visual Studio 2010,Visual Studio 2013,Atl,在Visual Studio 2013 building中包含Microsoft ATL库中的atlwin.h时,可能会导致许多编译器关于未定义元素的错误 HMONITOR is not defined 使用VS2010构建时不会发生这种情况 由于这是一个标准的MS头文件,丢失的类错误似乎没有意义。由于这是一个非常旧的遗留项目,问题在于stdafx.h文件中的windows目标版本 来自MSDN Visual C++不再支持针对Windows 95、Windows 98的目标, Window

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

HMONITOR is not defined
使用VS2010构建时不会发生这种情况


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

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

来自MSDN

Visual C++不再支持针对Windows 95、Windows 98的目标, Windows ME或Windows NT。如果您的WINVER或_WIN32_WINNT宏 分配给这些版本的Windows之一时,必须修改 宏。升级使用创建的项目时 Visual C++的早期版本,您可能会看到编译错误 如果已将WINVER或_WIN32_WINNT宏分配给某个版本,则将其发送到WINVER或_WIN32_WINNT宏 不再受支持的Windows的数目

所以,改变

#ifndef WINVER  
#define WINVER 0x0400   
#endif


纠正了构建问题

请注意:这似乎是一个合理的问题,而且是可以回答的问题。但发布一份副本并不是解决问题的办法。如果你能通过编辑整理原始问题,那就太好了。这会“撞”到它,使它能够获得所需的其余重新开放投票。我试过了,但被抢走了,失去了代表,那么我如何使用这里的系统?呃,什么?你是怎么被炒鱿鱼的?那没有任何意义。即使建议的编辑被拒绝,您也不会失去任何代表。尽管您会更仔细地查看,但您确实成功地编辑了该问题。然后,另一个查看您的编辑的用户实际上改进了它,添加了代码格式。看。所以看起来你已经完成了你应该做的,可能需要一些时间才能重新打开。它现在有2张重新开放的选票。感谢您花时间回复。我将等待它重新打开。请重新打开另一个问题或这个问题。我真的不在乎。我花了一天半的时间自己解决这个问题,我想帮助其他人避免同样的痛苦。我在2010年到2015年期间遇到了这个问题。请注意,
\u WIN32\u WINNT 0x0500
在2015年不起作用,但
\define\u WIN32\u WINNT\u WINXP将起作用。谢谢你的帖子。
#ifndef WINVER  
#define WINVER 0x0500
#define _WIN32_WINNT 0x0500
#endif