Tuesday, December 09, 2008

Значение цифровой констаны во время компиляции

Сейчас занимаюсь нудной работой. Компилирую старый код под новым компилятором и новым Platform SDK и нахожу много мест где какие-то определения перестали существовать из-за новых заголовочных файлов где эти определения условные и зависят от флагов например версии операционной системы. Нашел хорошее решение как узнать значение флагов во время компиляции:

// для цифровых

#define STRING2(x) #x
#define STRING(x) STRING2(x)
#pragma message( "FLAG= " STRING(FLAG)) 

// для строковых
#pragma message( "FLAG = " FLAG)