• Добро пожаловать на WYLEK.ru. Пожалуйста, войдите или зарегистрируйтесь.
 
122 гостей, 1 пользователь

avatar_Nexus

QT приложения и методы их модификации

Автор Nexus, 10 сентября 2014, 21:52:00

« предыдущая - следующая »

NexusАвтор темы

QT приложения и методы их модификации


Эта тема создана для желающих узнать что и как делать с QT библиотеками при их капризной работе с русскими строками. Ветка временная, потому как у меня нету сейчас времени писать полноценные руководства по разборке этих библиотек. Поэтому буду просто выкладывать скрины кода и краткие пояснения к ним что и как нужно делать, все это буду делать постепенно и будем обсуждать здесь все ньюансы этой головной боли русификаторщиков. Получается что-то типа блога или живого журнала :D Со временем возможно и напишу полноценный мануал.
Благодарю за понимание.

Приводится пример модификации QT библиотеки версии 4.4.3.0

Итак, имеется библиотека QtCore4.dll. Вся беда в ней. Грузим этот объект в отладчик Olly Debugger 2.01, кто не знает - для анализа кода жмем Ctrl+A, или выбираем через контекстное меню Analysis -> Analyse code.
После через контекстное меню выбираем Search for -> Names, или Ctrl+N. Вывалится список функций, которые экспортирует данная библиотека. То есть, будут показаны имена функций, которые находятся внутри библиотеки и которые могут быть использованы другими компонентами программы. Для постановления списка по алфавиту щелкнем на столбик Name.

Показать / Скрыть текст
[свернуть]

Далее ищем функцию fromLatin1_helper. Прикол в том, что в разных версиях QT библиотек это название функции может содержать разные дополнительные символы. Например, в версии библиотеки 4.4.3.0, которую я использую для этого примера, полное название будет как ?fromLatin1_helper@QString@@CAPAUData@1@PBDH@Z.
Чтобы узнать в любой библиотеке разных версий полное имя функции, можно через HEX редактор искать строку fromLatin1_helper, в результате найдется строка с полным именем функции.
Итак, в списке нашли эту функцию. Переходим в ее код, щелкая по ее названию.
Мы попадаем в код функции, куда приходят все текстовые строки, которые при переводе отображаются крякозяблями. На скрине весь ее код выделен серым цветом.

Показать / Скрыть текст
[свернуть]

Так вот, данная функция, точнее, эта процедура под названием fromLatin1_helper как раз и мешает переводчикам локализовать QT приложения. Если быть точным, то мешает не сама процедура, а небольшой кусочек ее кода, который выделен на рисунке серым цветом.

Показать / Скрыть текст
[свернуть]

* Ваши права на сайте

    TinyPortal

  • Вы не можете создавать статьи.
  • Вы не можете изменять свои статьи.
  • Вы не можете писать комментарии.
  • Вы не можете управлять статьями.
  • Вы не можете загружать файлы в TPdownloads.
  • Вы не можете управлять TPlistimages.

    Simple Machines

  • Вы не можете удалять темы.
  • Вы не можете создавать темы.
  • Вы не можете отвечать на сообщения.
  • Вы не можете прикреплять файлы.
  • Вы не можете изменять свои сообщения.
  • Вы не можете удалять свои сообщения.

 аталог@MAIL.RU - каталог ресурсов интернет Яндекс.Метрика