Суть: сборка с VS2012, есть макрос (WIN32_LEAN_AND_MEAN), определенный в моем проекте, я не могу найти # define-ed где-либо: нет в C / C ++ -> препроцессоре, не унаследован от родительских или проектных зависимостей ( microsoft.cpp.props), а не в командной строке. Это нигде не упоминается в vcxproj.
Компилируя один источник / заголовок в проекте, я обнаружил, что он уже определен в первой строке заголовка. Поместив это в верхней части моего заголовка:
#pragma once
#ifndef WIN32_LEAN_AND_MEAN
#pragma message ("WIN32_LEAN_AND_MEAN not defined")
#else
#pragma message ("WIN32_LEAN_AND_MEAN defined")
#endif
/* ... */
Напечатано "WIN32_LEAN_AND_MEAN defined
" на консоли вывода сборки.
Согласно предложениям, которые были размещены в другом - очень похожем - вопросе , я попытался переопределить макрос:
#define WIN32_LEAN_AND_MEAN 123
#ifndef WIN32_LEAN_AND_MEAN
#pragma message ("WIN32_LEAN_AND_MEAN not defined")
#else
#pragma message ("WIN32_LEAN_AND_MEAN defined")
#endif
и, очевидно, получить предупреждение о сборке:
C: \ sys \ inc \ myproj \ myproj_someheader.h (5): предупреждение C4005: 'WIN32_LEAN_AND_MEAN': переопределение макроса
аргументы командной строки: см. Предыдущее определение 'WIN32_LEAN_AND_MEAN'
Однако, как упоминалось ранее, этот макрос не определен в этой конфигурации проекта (vcxproj
), а также в каких-либо общих свойствах.
Мой вопрос : Как я могу найти, откуда на самом деле появился этот макрос?