Подтвердить что ты не робот

Ошибка компилятора VS 2015 'LCMapStringEx': идентификатор не найден

Мой код С++/MFC компилируется отлично с VS 2013, но когда я скомпилирован с VS 2015, я получаю эту ошибку:

C:\VS\VC\atlmfc\include\atlwinverapi.h(710): 
error C3861: 'LCMapStringEx': identifier not found

Я не использую LCMapString в любом месте моего кода, поэтому я не знаю, откуда это взялось?

4b9b3361

Ответ 1

У меня была та же проблема. Для меня причина в том, что: часть проекта была установлена ​​_WIN32_WINNT таким образом, что XP был поддержан, другие файлы не имели этого определения. Таким образом, заголовки MFC были включены с разными значениями для поддерживаемой платформы, что привело к этой странной ошибке.

Ответ 2

Я решил проблему. Мне пришлось вручную удалить все файлы obj, сгенерированные предыдущим компилятором, так как опция clean и rebuild в VS 2015, похоже, не удаляла их правильно.

Ответ 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