2016-09-23 3 views
-1

Я изменяю свои проекты 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) не отображается на все. Похоже, что ни один персонаж не отображается на своем месте, если он не печатается. Я также попытался использовать символ непосредственно в ресурсе вместо восьмеричного кода, и я вижу такое же поведение.

Когда символ товарного знака хранится как часть параметров моего проекта, он отображается правильно.

Как вставить символ товарного знака в свой ресурс?

EDIT: Дополнительная информация

Я использую RAD Studio 10.1 Берлин, и я следовал ответ от this StackOverflow post, чтобы создать свой файл ресурсов, настраивать свои параметры проекта, и включить ресурс в источнике проекта используя {$ R 'VersionInfo.res' 'VersionInfo.rc'}. Я пробовал кодировать мой .rc-файл, используя ANSI, UTF-8, UTF-16 BE и LE, а товарный знак либо не отображается должным образом в диалоговом окне свойств файла, либо при создании ошибки BRCC32.

Я нашел this web page, предлагая использовать восьмеричный код для авторских прав. Я попробовал восьмеричные коды для товарного знака в моем файле VersionInfo.rc и снова увидел то же самое.

Я также попытался скомпилировать ресурс с помощью rc.exe и добавить его в свой проект, используя пункт меню «Добавить в проект ...» из меню проекта Delphi. При создании я получил ошибки «Неподдерживаемый 16-разрядный ресурс ...».

+0

Почему вы делаете это в ANSI? –

+0

Я понятия не имею! Я буквально просто наткнулся на это вчера как лучший подход для ввода информации о версии, и я скопировал образец файла из блога/статьи и нашел другой сайт, в котором говорится, что восьмеричные коды должны использоваться для символов. –

+0

http://stackoverflow.com/questions/12692803/are-resource-files-compiled-as-unicode-or-ansi-code-page –

ответ

1

После комментариев Дэвида и Уоррена я пересмотрел свои тесты и обнаружил, что следующие работы.

  1. Создать .rc файл, содержащий текст и символы при необходимости. Оба ANSI-кодирования и UCS-2 Little Endian хорошо работали для этого файла, учитывая содержимое моего файла.
  2. Скомпилируйте ресурс с помощью соответствующего компилятора ресурсов, такого как rc.exe
  3. Добавить скомпилированный ресурс в проект DPR вручную или использовать функцию добавления в проект Delphi. Если вы используете «Добавить в проект», обязательно закройте вкладку «Автоматически открытая» для файла .RES, иначе при создании будут возникать ошибки «Неподдерживаемый 16-разрядный ресурс ...».