从VS2005升级应用vs2012后建设问题(Build Issues after Upgradin

2019-09-30 05:37发布

我需要我的应用程序从Visual Studio 2005的升级IDE到Visual Studio 2012。 该升级换代向导转换解决方案和项目,没有错误和一些警告成功文件。

但是,当我开始构建应用程序,我得到错误信息:

错误C1189:#错误:该文件要求_WIN32_WINNT进行#defined至少英语 - 澳大利亚。 值0x0501或更高的建议。 在atlcore.h!

我想没有改变版本在0x0500,0x0501,0x0502,也0x0601(均通过/ d编译器选项,并在atlcore.h手动更改,WINVER也发生了变化。),但没有运气。 正在显示的同样的错误。

我在哪里去了?

Answer 1:

视觉C ++不再支持针对Windows 95,Windows 98中,视窗ME,或Windows NT。 如果您WINVER _WIN32_WINNT或宏被分配到这些版本的Windows中的一个,您必须修改宏。

要修改宏,在头文件,添加以下代码行。

#define WINVER 0x0500
#define _WIN32_WINNT 0x0500

编辑:

WINVER决定建立自己的应用程序,这反过来将决定哪些程序由标头中找到编译时所需的最小平台SDK。

#define _WIN32_WINNT_NT4     0x0400
#define _WIN32_WINNT_WIN2K     0x0500
#define _WIN32_WINNT_WINXP     0x0501
#define _WIN32_WINNT_WS03     0x0502
#define _WIN32_WINNT_WIN6     0x0600
#define _WIN32_WINNT_VISTA     0x0600
#define _WIN32_WINNT_WS08     0x0600
#define _WIN32_WINNT_LONGHORN    0x0600
#define _WIN32_WINNT_WIN7     0x0601

其他解决方案:

如果您在PC上安装一个Windows SDK(在/微软的SDK / Windows)中,您可以在stdafx.h中#包括(或头你所有的C ++文件包含)。 包括SDKDDKVer.h将针对提供最高的Windows版本。

希望它的工作!!!!!

欲了解更多信息请看这里



Answer 2:

问题的评论中atlcore.h支票暂时解决:

如果_WIN32_WINNT> 0x0501

//#错误该文件要求_WIN32_WINNT进行#defined至少英语 - 澳大利亚。 值0x0501或更高的建议。

万一

我知道它不是正确的方式做[编辑由IDE附带文件],但没有,因为它可能是由于不正确的安装。

如果有人越过永久性修正过来,让我知道。



Answer 3:

可以添加一个预处理器指令为下项目设置项目,C / C ++,预处理器定义,附加WINVER = 0x0501;

(你也可以取消定义的定义)

我如果您使用它覆盖变化stdafx.h中预编译头纳闷,这是为了确保该设置的方式

此预处理器设置保存,直到该项目文件中的代码改变它,在这一点,如果这不能解决问题,那么你就必须找到如何或在哪里,这是被设置/取消/检查; 但解决方案不应涉及到Windows SDK文件中的任何改变



文章来源: Build Issues after Upgrading app from vs2005 to vs2012