Мне удалось исправить эту проблему в VS 2015 с помощью следующих шагов.
[1] (не уверен, что это было необходимо) Выключите / GL во всех компонентах
C / C ++> Оптимизация> Оптимизация всей программы> Нет
В файлах .VCXPROJ это:
<WholeProgramOptimization>false</WholeProgramOptimization>
Выключить / LTCG
Библиотекарь> Общие> Генерация временного кода связи
<LinkTimeCodeGeneration>false</LinkTimeCodeGeneration>
[2] Более важный шаг, убедитесь, что все компоненты рисуются из одинаковых каталогов. Мой основной EXE-файл использовал:
Release Include
$(WindowsSdkDir)include\um;$(WindowsSdkDir)include\shared;$(UniversalCRT_IncludePath);$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include
Release Library
$(VC_LibraryPath_x86);$(WindowsSdk_71A_LibraryPath_x86);
.lib использовал разные каталоги (неправильно):
Release Include
$(VC_IncludePath);$(WindowsSDK_IncludePath);
Release Library
$(VC_LibraryPath_x86);$(WindowsSDK_LibraryPath_x86);$(NETFXKitsDir)Lib\um\x86
Я изменил каталоги .lib так, чтобы они совпадали с .exe, и ошибка компиляции исчезла.