Rambler's Top100
"Knowledge itself is power"
F.Bacon
Поиск | Карта сайта | Помощь | О проекте | ТТХ  
 Круглый стол
  
Правила КС
>> Настройки

Фильтр вопросов
>> Новые вопросы
отслеживать по
>> Новые ответы

Избранное

Страница вопросов
Поиск по КС


Специальные проекты:
>> К л ю к в а
>> Г о л о в о л о м к и

Вопрос №

Задать вопрос
Off-topic вопросы

Помощь

 
 К н и г и
 
Книжная полка
 
 
Библиотека
 
  
  
 


Поиск
 
Поиск по КС
Поиск в статьях
Яndex© + Google©
Поиск книг

 
  
Тематический каталог
Все манускрипты

 
  
Карта VCL
ОШИБКИ
Сообщения системы

 
Форумы
 
Круглый стол
Новые вопросы

 
  
Базарная площадь
Городская площадь

 
   
С Л С

 
Летопись
 
Королевские Хроники
Рыцарский Зал
Глас народа!

 
  
ТТХ
Конкурсы
Королевская клюква

 
Разделы
 
Hello, World!
Лицей

Квинтана

 
  
Сокровищница
Подземелье Магов
Подводные камни
Свитки

 
  
Школа ОБЕРОНА

 
  
Арсенальная башня
Фолианты
Полигон

 
  
Книга Песка
Дальние земли

 
  
АРХИВЫ

 
 

Сейчас на сайте присутствуют:
 
  
 
Во Флориде и в Королевстве сейчас  06:31[Войти] | [Зарегистрироваться]
Ответ на вопрос № 55585

25-09-2007 10:26
Здравствуйте!
Просмотрел весь тематический каталог, но так и не смог найти решения своей проблемы.

Суть в следующем:
В проект добавляю ресурсный файл (.rc) с VERSIONINFO. Директива {$R *.res} - установлена. При добавлении файла IDE добавляет еще раз {$R '1.res' '1.rc'}. Галочку "Include version information in project" в опциях проекта снимаю.
Все компилируется нормально, но русские символы, в FileDescription и CompanyName в свойствах полученного exe-шника выводятся абракадаброй (по видимому в кодировке Unicode).
При этом, если та же самая информация добавляется через меню Project Options в IDE, то все нормально - все по русски.

Пробовал отдельно компилировать rc-файл утилитой brcc32:

brcc32 1.rc


результат абсолютно такой-же, причем параметры командной строки результата не меняют:

brcc32 -r -32 -v -m -c1251 -l1049 1.rc 



Сравнивал скомпилированные res-файлы - естественно отличаются.
Английские символы естественно везде отображаются правильно. Русские символы в моем res-файле отображаются нормально (по русски), в res-файле, получаемом при компиляции проекта с установленной галочкой "Include version information in project", русские символы отображаются абракадаброй. В обоих файлах вроде одинаковая кодировка ASCII.

rc-файл:


#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_RUS)
#ifdef _WIN32
LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT
#pragma code_page(1251)
#endif
#endif
  VS_VERSION_INFO VERSIONINFO
      FILEVERSION 1,1,6,3
      PRODUCTVERSION 1,1,6,3
      FILEOS VOS__WINDOWS32
      FILETYPE VFT_APP
  BEGIN                                 
      BLOCK "StringFileInfo"
      BEGIN
          BLOCK "041904E3"
          BEGIN
              VALUE "FileDescription", "Тестовое приложение\0"
              VALUE "FileVersion", "1.1.6.3\0"
              VALUE "InternalName", "Test.exe\0"
              VALUE "OriginalFilename", "TEST.EXE\0"
              VALUE "ProductName", "Test\0"
              VALUE "ProductVersion", "1.1.6.3\0"
              VALUE "CompanyName", "ООО Тестовые системы\0"
          END
      END
      BLOCK "VarFileInfo"
      BEGIN
          VALUE "Translation", 0x0419, 0x04E3
      END
  END



Использую: BDS 2006; WinXP Professional SP2 русская.

В сети похожего ничего не нашел. В Королевстве есть примеры rc-файлов с русскими строками, но ничего о том как такие файлы компилируются и что нужно сделать, чтоб они скомпилировались "нормально" нет.

Надеюсь на вашу помощь. Заранее спасибо...

[+] Добавить в избранные вопросы

Отслеживать ответы на этот вопрос по RSS

Ответы:


Уважаемые авторы вопросов! Большая просьба сообщить о результатах решения проблемы на этой странице.
Иначе, следящие за обсуждением, возможно имеющие аналогичные проблемы, не получают ясного представления об их решении. А авторы ответов не получают обратной связи. Что можно расценивать, как проявление неуважения к отвечающим от автора вопроса.

17-04-2013 22:54 | Комментарий к предыдущим ответам
Может кому пригодится.

Для 2009 и выше ( xe2, xe3 )
достаточно в dproj добавить свойства:
<BRCC_CompilerToUse>rc</BRCC_CompilerToUse>
<BRCC_CodePage>1251</BRCC_CodePage>
или в среде:
Project->Options->Resource compiler
  "Resource compiler to use" -> "Windows SDK Resource Compiler"
  "Code page" -> 1251
rc должен быть в кодировке 1251.

24-10-2008 04:36
В D2007 те же грабли [censored]
Спасибо за совет :)

26-09-2007 00:34 | Сообщение от автора вопроса
Вообще я так и думал, что это именно глюк компилятора. Но не знал, что с ним делать...

Спасибо большое за совет! Действительно, rw32core.dll от Delphi7 работает!

Стоит наверное сообщить об этом товарищам из Borland'а?.. Мужики-то не знают...

Может кто-нибуть сможет этим заняться? (я сам этого никогда не делал, куда писать не знаю, да и английский мой не идеален :))

Кстати, в Delphi8 такой же глючный rw32core.dll. И тоже без VERSIONINFO...
Интересно, в 2007 BDS его исправили?

В общем думаю проблема решена, вопрос закрыт. DRON, еще раз спасибо!

25-09-2007 12:43
Ну точно... дело в rw32core.dll которая идёт с BDS (вы будете смеятся, но у неё нет VERSIONINFO), просто замените её на такую же из Delphi7 и всё заработает.

25-09-2007 12:29
Думаю тут баг с обработкой VERSIONINFO, потому как такое

#pragma code_page(1251)
TEST RCDATA {
  L"У попа была собака",
}

компилируется абсолютно правильно.
Если поэкспериментировать, то станет понятно что ни "-с", ни "#pragma" никак не влияют на ресурс VERSIONINFO, компилятор просто тупо добавляет нолик к коду символа, чтобы сделать из ANSI, что-то напоминающее Unicode.

Добавьте свое cообщение

Вашe имя:  [Войти]
Ваш адрес (e-mail):На Королевстве все адреса защищаются от спам-роботов
контрольный вопрос:
"Мы с тобой одной крови — ты и я!". Чьи это заветные слова?
в качестве ответа на вопрос или загадку следует давать только одно слово в именительном падеже и именно в такой форме, как оно используется в оригинале.
Надоело отвечать на странные вопросы? Зарегистрируйтесь на сайте.
Тип сообщения:
Текст:
Жирный шрифт  Наклонный шрифт  Подчеркнутый шрифт  Выравнивание по центру  Список  Заголовок  Разделительная линия  Код  Маленький шрифт  Крупный шрифт  Цитирование блока текста  Строчное цитирование
  • вопрос Круглого стола № XXX

  • вопрос № YYY в тесте № XXX Рыцарской Квинтаны

  • сообщение № YYY в теме № XXX Базарной площади
  • обсуждение темы № YYY Базарной площади
  •  
     Правила оформления сообщений на Королевстве

    Страница избранных вопросов Круглого стола.
      
    Время на сайте: GMT минус 5 часов

    Если вы заметили орфографическую ошибку на этой странице, просто выделите ошибку мышью и нажмите Ctrl+Enter.
    Функция может не работать в некоторых версиях броузеров.

    Web hosting for this web site provided by DotNetPark (ASP.NET, SharePoint, MS SQL hosting)  
    Software for IIS, Hyper-V, MS SQL. Tools for Windows server administrators. Server migration utilities  

     
    © При использовании любых материалов «Королевства Delphi» необходимо указывать источник информации. Перепечатка авторских статей возможна только при согласии всех авторов и администрации сайта.
    Все используемые на сайте торговые марки являются собственностью их производителей.

    Яндекс цитирования