Ошибка компилятора VS 2015 'LCMapStringEx': идентификатор не найден
Мой код С++/MFC компилируется отлично с VS 2013, но когда я скомпилирован с VS 2015, я получаю эту ошибку:
C:\VS\VC\atlmfc\include\atlwinverapi.h(710):
error C3861: 'LCMapStringEx': identifier not found
Я не использую LCMapString в любом месте моего кода, поэтому я не знаю, откуда это взялось?
Ответы
Ответ 1
У меня была та же проблема. Для меня причина в том, что: часть проекта была установлена _WIN32_WINNT таким образом, что XP был поддержан, другие файлы не имели этого определения. Таким образом, заголовки MFC были включены с разными значениями для поддерживаемой платформы, что привело к этой странной ошибке.
Ответ 2
Я решил проблему. Мне пришлось вручную удалить все файлы obj, сгенерированные предыдущим компилятором, так как опция clean и rebuild в VS 2015, похоже, не удаляла их правильно.
Ответ 3
Исправлена проблема с версией _WIN32_WINNT, _WIN32_WINNT.
вы можете увидеть подобный поток здесь.
Скомпилировать ошибки, обновляющие проект ATL с vs2010 до vs2013
(WINVER или _WIN32_WINNT)
Ответ 4
Определение защищено для версии минимального целевого окна.
Этот защитник использует одно из ваших определений или NTDDI_VERSION (которое создается из другого определения внутри (sdkddkver.h).
Исправляя сведения о версии _WIN32_WINNT, WINVER решила проблему.
Перейдите к:
Properties->Configuration properties->C/C++->Preprocessor->Preprocessor
Определения и проверьте, какие макросы определены.
меняя их на
NTDDI_VERSION= 0x06030000
WINVER=0x0A00
_WIN32_WINNT=0x0A00
решил мою проблему.
Здесь 0A00 для windows10.Refer ниже link
https://msdn.microsoft.com/en-us/library/windows/desktop/aa383745(v=vs.85).aspx