我正在根據以前的問題創建構建配置。我已經創建了構建配置,並且我爲名爲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