VS2012 C ++ предупреждение C4005: «__useHeader»: переопределение макроса
При переносе старого проекта C ++ из Visual Studio 6 в Visual Studio 2012 мы обнаружили странный набор предупреждений из стандартных заголовков платформы Microsoft:
предупреждение C4005: '__useHeader» : переопределение макросапредупреждение C4005: '__on_failure» : переопределение макросаПоиск в Интернете обнаружил только несколько человек, столкнувшихся с этой ошибкой. В некоторых случаях люди пытались использовать VS2012 для компиляции устаревшего кода DirectX, чего я не делаю. В других случаях это были люди, которые пытались использовать VS2012 для Windows XP (используя новую опцию из Обновления 1), что я и делаю.
На вопрос DirectX ответили, что всегда будет предупреждение о том, что выперекомпилировать устаревшую (до Win8) версию DirectX, и выЯ просто должен жить с этим.
На вопрос Windows XP ответа не было. Другие просто сказали, что не могутвоспроизвести проблему.
Я воспроизвел это и нашел причину, которую я пишу здесь, чтобы помочь всем, кто сталкивается с этим.