对于任何关心的人:.rc 文件是来自 MFC 项目的资源文件,用于定义 UI 元素,例如对话框布局。它使用与 C++ 相同的预处理器,但它不共享 C++ 的语法——并且在窗口 CAPTION 字段中,两个字符串文字不会通过将它们并置来连接。在字符串文字中,两个双引号实际上是一个转义序列,它生成一个双引号字符。所以字面意思:
"Hello""World"
最终看起来像
Hello"World
在您的对话框窗口的标题中。
给出的示例的问题:
CAPTION "Hello"STRINGIZE(Word_)
是不是必须删除“Hello”末尾的双引号,但预处理器不能这样做。但是,如果允许在宏中包含“Hello”,则可以进行连接。首先,我定义了这些宏:
#define CONCAT(a,b) a##b
#define STRINGIZE_(x) #x
#define STRINGIZE(x) STRINGIZE_(x)
然后,在对话记录中:
...
EXSTYLE WS_EX_APPWINDOW
CAPTION STRINGIZE(CONCAT(Hello,World))
FONT 10, "Segoe UI Semibold", 600, 0, 0x0
...
有了这个,对话框的标题最终看起来像HelloWorld —— 没有杂散的引号或任何东西。我希望你能使用这种技术。