Mar*_*o M 13 compiler-errors visual-studio visual-studio-2015
我的C++/MFC代码在VS 2013中编译得很好,但是当我使用VS 2015编译时,我收到此错误:
C:\VS\VC\atlmfc\include\atlwinverapi.h(710):
error C3861: 'LCMapStringEx': identifier not found
Run Code Online (Sandbox Code Playgroud)
我的代码中没有使用LCMapString,所以我不知道它来自哪里?
该定义受最低目标 Windows 版本保护。这个守卫使用你的一个定义或 NTDDI_VERSION(它是从 (sdkddkver.h) 中的另一个定义创建的)。
修正_WIN32_WINNT的版本细节,WINVER解决了问题。去:
Properties->Configuration properties->C/C++->Preprocessor->Preprocessor
Run Code Online (Sandbox Code Playgroud)
定义并检查定义了哪些宏。
将它们更改为
NTDDI_VERSION= 0x06030000
WINVER=0x0A00
_WIN32_WINNT=0x0A00
Run Code Online (Sandbox Code Playgroud)
解决了我的问题。这里 0A00 适用于 windows10。请参阅以下链接 https://msdn.microsoft.com/en-us/library/windows/desktop/aa383745(v=vs.85).aspx
在 StdAfx.h 中定义以下宏:
//对于Windows 10
NTDDI_版本 0x0A000000
#定义WINVER 0x0A00
#定义_WIN32_IE 0x0A00
另请根据您的环境参考下面的 MSDN 链接以了解 WINVER 和 NTDDI_VERSION。
https://learn.microsoft.com/en-us/cpp/porting/modifying-winver-and-win32-winnt?view=vs-2019
https://learn.microsoft.com/en-us/windows/win32/winprog/using-the-windows-headers
| 归档时间: |
|
| 查看次数: |
6850 次 |
| 最近记录: |