我的C++/MFC代码在VS 2013上编译得很好,但当我用VS 2015编译时,我得到了这个错误:
C:\VS\VC\atlmfc\include\atlwinverapi.h(710):
error C3861: 'LCMapStringEx': identifier not found
我没有在我的代码中使用LCMapString,所以我不知道这是从哪里来的?
发布于 2016-01-15 05:44:27
我也有同样的问题。对我来说,原因是这样的:项目的一部分以支持XP的方式设置了_WIN32_WINNT,而其他文件没有这样的定义。因此,对于支持的平台,MFC标头被包含在不同的值中,导致了这个奇怪的错误。
发布于 2017-09-12 17:57:52
对于最低目标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
发布于 2015-12-24 04:30:13
我解决了这个问题。我不得不手动删除之前编译器生成的所有obj文件,因为VS2015中的清理和重建选项似乎没有正确地删除它们。
https://stackoverflow.com/questions/34442800
复制相似问题