【问题标题】:Trademark symbol in version-information resource版本信息资源中的商标符号
【发布时间】:2017-02-01 09:15:21
【问题描述】:

我正在修改我的 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 Berlin,并按照this StackOverflow post 的回答来创建我的资源文件,配置我的项目选项,并使用 {$R 'VersionInfo.res' 将资源包含在项目源中'版本信息.rc'}。我曾尝试使用 ANSI、UTF-8、UTF-16 BE 和 LE 对我的 .rc 文件进行编码,但商标无法在文件属性对话框中正确显示,或者在构建时出现 BRCC32 错误。

我发现this web page 建议使用八进制代码来获取版权。我在我的 VersionInfo.rc 文件中尝试了商标的八进制代码,但又看到了同样的结果。

我还尝试使用 rc.exe 编译资源并使用 Delphi 项目菜单中的“添加到项目...”菜单项将其添加到我的项目中。我在构建时收到“不支持的 16 位资源...”错误。

【问题讨论】:

  • 为什么要在 ANSI 中这样做?
  • 我不知道!我昨天偶然发现这是一种更好的注入版本信息的方法,我从博客/文章中复制了一个示例文件,发现另一个网站说符号必须使用八进制代码。
  • 使用现代编辑器,将您的 .RC 文件保存为 Unicode(不是 ansi 文件)。还要小心您使用的是哪个 RC。有一些旧的 Delphi 版本附带了古老的资源编译器,它们可能不支持现代 Windows 资源编译器支持的相同内容。您没有说明您的 Delphi 版本,或者您使用的是 RC 或 BRCC
  • 我使用的是 RAD Studio 10.1。我从最初的帖子中省略了我认为是关于我失败的企业的多余信息,但反对票表明我应该把它包括在内。我使用 Notepad++ 并尝试使用 ANSI/UTF-8/UTF-16 LE & BE 保存 .rc 文件。包括使用 {$R n.RES n.rc} 的资源对所有人都失败了,但是 ANSI 编码因此我尝试了八进制代码。那使用brcc32。使用 rc 创建 .res 在 Delphi 中会导致各种关于 Unsupported 16bit 资源的问题。在编辑我的问题以概述我之前的研究和今天的研究之前,我将完成我的新测试。

标签: delphi version versioninfo resource-file


【解决方案1】:

在 David 和 Warren 的 cmets 之后,我重新审视了我的测试,发现以下方法有效。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-16
    • 2011-06-18
    • 2021-04-22
    • 1970-01-01
    • 2013-10-01
    相关资源
    最近更新 更多