Я работаю над созданием конфигураций сборки на основе моего предыдущего вопроса. У меня есть созданные конфигурации сборки, и у меня есть условные объявления для разных сборок в файле с именем custom.h
. В настоящее время это выглядит так:
#pragma once
#if defined(ELITE_BUILD)
#define BUILD 3 // 1: personal, 2: select, 3: elite
#elif defined(SELECT_BUILD)
#define BUILD 2
#elif defined(PERSONAL_BUILD)
#define BUILD 1
#endif
В одном из моих файлов .rc есть включение для versionconfig.h
, которое выглядит следующим образом (несколько отредактировано):
#if BUILD == 1
#define STRDESCRIPTION "Personal Edition"
#elif BUILD == 2
#define STRDESCRIPTION "Select Edition"
#elif BUILD == 3
#define STRDESCRIPTION "Elite Edition"
#pragma message(STRDESCRIPTION)
#endif
Я добавил команду #pragma
для регистрации. После этого включите, соответствующие части файла .rc выглядят так (опять же, для краткости немного отредактированы):
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904b0"
BEGIN
VALUE "FileDescription", STRDESCRIPTION
END
END
END
Когда я пытаюсь скомпилировать этот проект, я получаю сообщение об ошибке error RC2104 : undefined keyword or key name: STRDESCRIPTION
. Я немного растерялся. Значение существует, я могу зарегистрировать его сразу после установки, и для него нет команды #undef
.
- РЕДАКТИРОВАНИЕ -
Если я добавлю метки-заполнители вне блока if, проект будет скомпилирован, но значения не отображаются, поэтому моя проблема связана с условными определениями. Что меня больше всего смущает в этом моменте, так это то, что я могу поместить команду #pragma message
в условный блок, и она выполняется должным образом, но определенные там значения отсутствуют. Надеясь, что кто-то может пролить свет на это для меня.