我正在根据以前的问题创建构建配置。我已经创建了构建配置,并且我为名为custom.h
的文件中的不同构建提供了条件声明。目前,它看起来像这样:.rc文件中的值未在.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
命令。
- 编辑 -
如果我添加占位符定义外,如果地块项目将编译,但值显示不出来,所以我的问题似乎与有条件的定义。这里最让我困惑的是,我可以在条件块中放入一个#pragma message
命令并且它的执行正确,但是那里定义的值是不存在的。希望有人能为我阐明这一点。
通常我会怀疑错字。 – Joshua 2012-02-14 21:23:33
如果我最近生成了可能的文件。但是,文件的相关部分在一段时间内并没有改变。唯一修改过的文件是'custom.h',并且要检查构建配置的预处理器部分中定义的变量。 'versionconfig.h'和'.rc'文件没有被修改。 – 2012-02-14 21:27:17