0

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

我发现这个网页建议使用八进制代码来获取版权。我在我的 VersionInfo.rc 文件中尝试了商标的八进制代码,并再次看到了相同的结果。

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

4

1 回答 1

1

在大卫和沃伦的评论之后,我重新审视了我的测试,发现以下工作。

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