Within this article,我注意到\ 0被插入到#define语句中以构建版本字符串。我也在一些我正在维护的MFC项目中看到过它。在完成将版本资源移动到.rc2文件的过程中,我可以使用一个标题包括在我的所有项目中设置版本,我已经注意到了\ 0。在某些情况下,它不会导致任何问题,但在某些情况下,生成的编译文件的属性窗口将显示一个尾随引号(")。删除\ 0似乎没有伤害任何东西,但我不明白为什么他们会被需要。希望有一些老派的MFC专家了解这一点,可以解释是否建议删除\ 0。
示例:
VALUE "FileVersion", VERSION_STR"\0" // <-- adding it here causes the version to show in the properties dialog as 1, 0, 4, 1" which is odd.
VALUE "InternalName", "DaHelper\0" // <-- what is the \0 for? Isn't it already a string literal null terminated without adding \0?
答案 0 :(得分:0)
可能没人能对它有真正的答案。
此外,文档中没有显示规则。 使用字符串时,samples in the MSDN(您的链接)显示相同的定义。只显示了一些。但我重新检查了真正的旧资源16次。它总是一样的。 VALUE类型都以\ 0字符终止。字符串在资源编辑器中为此类资源定义的接缝不会自动\ 0终止。