版本信息资源中的商标符号

时间:2016-09-23 13:26:31

标签: delphi version versioninfo resource-file

我修改我的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&将资源包含在项目源中#39; VersionInfo.res' ' VersionInfo.rc'}。我曾尝试使用ANSI,UTF-8,UTF-16 BE和LE编码我的.rc文件,并且商标在文件属性对话框中无法正确显示或构建时出现BRCC32错误。

我发现this web page建议使用八进制代码进行版权保护。我在我的VersionInfo.rc文件中尝试过商标的八进制代码,并再次看到了相同的内容。

我还尝试使用rc.exe编译资源并使用" Add to Project ..."将其添加到我的项目中。 Delphi项目菜单中的菜单项。我收到了#34;不支持的16位资源......"建设时的错误。

1 个答案:

答案 0 :(得分:1)

在David和Warren的评论之后,我重新审视了我的测试,发现以下工作。

  1. 根据需要创建包含文本和符号的.rc文件。鉴于我的文件内容,ANSI编码和UCS-2 Little Endian都适用于此文件。
  2. 使用适当的资源编译器(如rc.exe
  3. )编译资源
  4. 手动将已编译的资源添加到项目DPR中,或使用Delphi的“添加到项目”功能。如果使用“添加到项目”,请确保关闭.RES文件的自动打开的选项卡,否则在构建时会出现“不支持的16位资源...”错误。