Visual studio VS 2015编译器错误';LCMapStringEx';:找不到标识符

Visual studio VS 2015编译器错误';LCMapStringEx';:找不到标识符,visual-studio,compiler-errors,visual-studio-2015,Visual Studio,Compiler Errors,Visual Studio 2015,我的C++/MFC代码可以用VS 2013编译,但是当我用VS 2015编译时,我得到以下错误: C:\VS\VC\atlmfc\include\atlwinverapi.h(710): error C3861: 'LCMapStringEx': identifier not found 我的代码中没有使用LCMapString,所以我不知道这是从哪里来的?我解决了这个问题。我不得不手动删除前一个编译器生成的所有obj文件,因为VS 2015中的“清理和重建”选项似乎没有正确删除它们。我也有

我的C++/MFC代码可以用VS 2013编译,但是当我用VS 2015编译时,我得到以下错误:

C:\VS\VC\atlmfc\include\atlwinverapi.h(710): 
error C3861: 'LCMapStringEx': identifier not found

我的代码中没有使用LCMapString,所以我不知道这是从哪里来的?

我解决了这个问题。我不得不手动删除前一个编译器生成的所有obj文件,因为VS 2015中的“清理和重建”选项似乎没有正确删除它们。

我也有同样的问题。对我来说,原因是:项目的一部分设置了WIN32,以支持XP,而其他文件没有这样的定义。因此,针对支持的平台,MFC头包含了不同的值,从而导致了这个奇怪的错误。

纠正了_WIN32\u WINNT的版本详细信息,解决了这个问题

你可以在这里看到类似的线索


(WINVER或_WIN32 _WINNT)

该定义针对最低目标windows版本进行保护。 此防护使用您的一个定义或NTDDI_版本(从(sdkddkver.h)中的另一个定义创建)


WINVER更正了_WIN32_WINNT的版本详细信息,解决了该问题。 转到:

定义并检查定义了哪些宏

将它们更改为

NTDDI_VERSION= 0x06030000
WINVER=0x0A00
_WIN32_WINNT=0x0A00
解决了我的问题。 此处0A00适用于windows10。请参阅下面的链接
在StdAfx.h中定义以下宏:

//适用于Windows 10

NTDDI_版本0x0A000000

#定义WINVER 0x0A00

#定义_WIN32_IE 0x0A00

另请根据您的环境参考以下有关WINVER和NTDDI_版本的MSDN链接


在项目头或代码中手动设置这些宏正是导致此问题的原因,通常是几年后,当有人继承项目并尝试使用较新的编译器或SDK构建它时。另请参阅
NTDDI_VERSION= 0x06030000
WINVER=0x0A00
_WIN32_WINNT=0x0A00