включение windows.h вызывает конфликт с именем локальной переменной

Я включаю windows.h в один из моих h-файлов (чтобы использовать ] CaptureStackBackTrace ) в проекте Visual-Studio. Сначала у меня возникли некоторые ошибки компилятора из-за использования методов min / max std и макроса с тем же именем в windows.h , но, похоже, это решается с помощью #define NOMINMAX , как я читал в других сообщениях SO. (Я говорю «кажется», потому что не могу быть уверенным, пока весь мой проект снова не соберется нормально.)

Проблема в том, что некоторые имена локальных переменных теперь нарушают сборку. Строка:

int grp1;

внутри метода класса вызывает следующую ошибку:

error C2143: syntax error : missing ';' before 'constant'

пока файл cpp компилируется нормально, если я изменю имя переменной на grp1_ .

Конечно, я могу просто изменить имя переменной, но, тем не менее, у меня есть ощущение, что я что-то делаю не так - не так ли? Или это известная проблема при включении windows.h ? Есть ли другое, более элегантное решение, кроме изменения имени переменной?

8
задан Itamar Katz 13 July 2011 в 12:26
поделиться