首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >VS 2015编译器错误“LCMapStringEx”:找不到标识符

VS 2015编译器错误“LCMapStringEx”:找不到标识符
EN

Stack Overflow用户
提问于 2015-12-24 03:55:33
回答 5查看 9.4K关注 0票数 16

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

代码语言:javascript
运行
复制
C:\VS\VC\atlmfc\include\atlwinverapi.h(710): 
error C3861: 'LCMapStringEx': identifier not found

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

EN

回答 5

Stack Overflow用户

发布于 2016-01-15 05:44:27

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

票数 9
EN

Stack Overflow用户

发布于 2017-09-12 17:57:52

对于最低目标windows版本,该定义是受保护的。这个保护使用您的一个定义或NTDDI_VERSION (它是从(sdkddkver.h)中的另一个定义创建的)。

更正了_WIN32_WINNT的版本详细信息,WINVER解决了这个问题。请转至:

代码语言:javascript
运行
复制
Properties->Configuration properties->C/C++->Preprocessor->Preprocessor 

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

将它们更改为

代码语言:javascript
运行
复制
NTDDI_VERSION= 0x06030000
WINVER=0x0A00
_WIN32_WINNT=0x0A00

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

票数 5
EN

Stack Overflow用户

发布于 2015-12-24 04:30:13

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34442800

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档