我想在我的.rc文件中使用#define'd strings。例如,假设我在.rc文件中包含了#include此.h文件:
#if defined(RED_BUILD)
#define CAPTION_TEXT "Red Window"
#define PROMPT_TEXT "Red Prompt"
#else
#define CAPTION_TEXT "Blue Window"
#define PROMPT_TEXT "Blue Prompt"
#endif
在我的.rc文件中,说我有对话框:
IDD_Dialog DIALOG 0, 0, 286, 258
STYLE WS_POPUP | WS_CAPTION
CAPTION "First " CAPTION_TEXT " Dialog"
BEGIN
LTEXT "First " PROMPT_TEXT, -1, 4, 80, 120, 8
LTEXT "Second " PROMPT_TEXT, -1, 4, 90, 120, 8
END
但是资源编译器不喜欢这样,给出了“在对话框中预期的BEGIN”。有什么方法可以哄骗预编译器来处理这个问题吗?
我当前的解决方法是在我的.rc文件中 #if defined(RED_BUILD),这有效,但并不理想,因为我有数百个需要更改的提示。
答案 0 :(得分:0)
最好的方法是维护不同的资源文件并编译它们,而不是处理一个大的“ifdef`d”资源文件中的所有内容。