Я работаю над созданием конфигураций сборки, основанных на предыдущем вопросе. У меня есть созданные конфигурации сборки, и у меня есть условные объявления для разных сборок в файле с именем custom.h
. В настоящее время она выглядит следующим образом:Значение в файле .h, не определенном в .rc файле
#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
.
- EDITED -
Если добавить заполнитель определяет снаружи из, если блокировать проект компилируется, но значения не отображаются, поэтому моя проблема, как представляется, связаны с условными определениями. Что меня больше сбивает с толку, так это то, что я могу поместить команду #pragma message
внутри условного блока, и она выполнена правильно, но значения, определенные там, несуществуют. Надеюсь, кто-то может пролить свет на это для меня.
Обычно я подозреваю опечатку. – Joshua
Если я недавно создал файлы, которые могут быть возможны. Однако соответствующие части файлов не изменились за довольно долгое время. Единственными измененными файлами были 'custom.h', и это должно было быть проверено на переменные, определенные в разделе Preprocessor в конфигурациях сборки. 'versionconfig.h' и файл' .rc' не были изменены. –