я делаю простой порт с Linux на windows, теперь в Linux я передаю простой -DVERSION = 1, чтобы иметь возможность получить значение в макросе препроцессора: например:
#define APP_NAME "MyApp " VERSION
в windows, когда я устанавливаю значение ВЕРСИЯ в: Свойства конфигурации, C / C ++, Препроцессор -> Определения препроцессора как:
VERSION=1
Я получаю:
error C2143: syntax error: missing ')' before 'constant'
также, если ВЕРСИЯ определяется в других местах, например:
char *message = (char*)"MyApp " VERSION "\0";
, получается то же самое:
error C2143: syntax error: missing ';' before 'constant'
когда я наведу указатель мыши на определение ВЕРСИИ, я вижу, что он установлен на 1