我正在修改我的Delphi项目,以使用版本信息资源文件而不是在项目文件中存储版本信息。版本信息资源中的商标符号
我VersionInfo.rc文件:
1 VERSIONINFO
FILEVERSION 1,10,0,999
PRODUCTVERSION 1,10,0,0
FILEOS 0x4
FILETYPE 0x1
{
BLOCK "StringFileInfo"
{
BLOCK "040904E4"
{
VALUE "CompanyName", "Company Inc.\0"
VALUE "FileDescription", "Product\231\0"
VALUE "FileVersion", "1.10.0.999\0"
VALUE "InternalName", "Product\231\0"
VALUE "LegalCopyright", "\251 2016 Company Inc.\0"
VALUE "LegalTrademarks", "Company\231 Product\231\0"
VALUE "ProductName", "Product\231\0"
VALUE "ProductVersion", "1.10\0"
}
}
BLOCK "VarFileInfo"
{
VALUE "Translation", 0x409, 1252
}
}
注册商标(\ 256)和版权(\ 251)正确的符号在文件的属性对话框中显示,但商标(\ 231)不显示在所有。似乎没有字符显示在它的位置,除非它是不可打印的。我也尝试过直接在资源中使用符号而不是八进制代码,我看到了相同的行为。
当商标符号作为我的项目选项的一部分存储时,它会正确显示。
如何在我的资源中插入商标符号?
编辑:附加信息
我使用RAD Studio的10.1柏林,我是从之后的this StackOverflow post答案创建我的资源文件,配置我的项目选项,并在项目中包含源资源使用{$ R'VersionInfo.res''VersionInfo.rc'}。我曾尝试使用ANSI,UTF-8,UTF-16 BE和LE编码我的.rc文件,并且商标无法在文件属性对话框中正确显示,或者在构建时出现BRCC32错误。
我发现this web page建议使用八进制代码的版权。我在我的VersionInfo.rc文件中尝试了商标的八进制代码,并再次看到相同的内容。
我也尝试使用rc.exe编译资源,并使用Delphi的“项目”菜单中的“添加到项目...”菜单项将其添加到我的项目中。构建时收到“不支持的16位资源...”错误。
你为什么要在ANSI中这样做? –
我不知道!从字面上看,我昨天偶然发现这是一种更好的注入版本信息的方法,我从博客/文章中复制了一个示例文件,并发现另一个网站说八进制代码必须用于符号。 –
http://stackoverflow.com/questions/12692803/are-resource-files-compiled-as-unicode-or-ansi-code-page –