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

时间:2015-12-23 19:55:33

标签: visual-studio compiler-errors visual-studio-2015

我的C ++ / MFC代码在VS 2013中编译得很好,但是当我使用VS 2015编译时,我收到了这个错误:

AnyCPU

我的代码中没有使用LCMapString,所以我不知道它来自何处?

5 个答案:

答案 0 :(得分:7)

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

答案 1 :(得分:1)

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

答案 2 :(得分:1)

更正_WIN32_WINNT的版本细节,_WIN32_WINNT解决了这个问题。

你可以在这里看到类似的帖子。

Compile Errors upgrading ATL project from vs2010 to vs2013

(WINVER或_WIN32_WINNT)

答案 3 :(得分:1)

该定义受到最小目标Windows版本的保护。 这个守卫使用你的一个定义或NTDDI_VERSION(它是从(sdkddkver.h)中的另一个定义创建的。

更正了_WIN32_WINNT的版本细节,WINVER解决了这个问题。 转到:

Properties->Configuration properties->C/C++->Preprocessor->Preprocessor 

定义并检查定义了哪些宏。

将其更改为

NTDDI_VERSION= 0x06030000
WINVER=0x0A00
_WIN32_WINNT=0x0A00

解决了我的问题。 这里0A00适用于windows10。请参阅下面的链接 https://msdn.microsoft.com/en-us/library/windows/desktop/aa383745(v=vs.85).aspx

答案 4 :(得分:0)

在StdAfx.h中定义以下宏:

//对于Windows 10

NTDDI_VERSION 0x0A000000

#define WINVER 0x0A00

#define _WIN32_IE 0x0A00

还请根据您的环境在下面的MSDN链接中获取WINVER和NTDDI_VERSION。

https://docs.microsoft.com/en-us/cpp/porting/modifying-winver-and-win32-winnt?view=vs-2019

https://docs.microsoft.com/en-us/windows/win32/winprog/using-the-windows-headers