Сейчас на форуме: asfa, Rio, _MBK_, Adler (+8 невидимых)

 eXeL@B —› Вопросы новичков —› Перевод плагина на русский язык
Посл.ответ Сообщение

Ранг: 0.9 (гость)
Активность: 0=0
Статус: Участник

Создано: 31 января 2013 23:12
· Личное сообщение · #1

Уважаемые спецы! Помогите, пожалуйста, с одним делом. Есть один плагин для программы VirtualDub, я его пытаюсь перевести на русский язык, но при переводе в Меню символы отображаются непонятно чем (то есть различным мусором). Например, через WinHex перевожу на русский словосочетание &Save as... , но выходит непонятно что. Если запустить прогу (и плагин), а потом открыть в WinHex RAM область (VirtualDub - Первичная память), то можно найти в Юникоде, например, это же сочетание "&Save as..." и там вставлять русские символы в Юникоде. Можно так Меню в памяти перевести - конечно, это ради прикола делается, ведь это не дело и полный гемор). Значит прога считывает это сочетание, потом как-то конвертирует в Юникод, при этом "забывая" выставить нашу (русскую) кодировку, и потом размещает Юникодное выражение в памяти, откуда оно берет его для своих нужд. Нужно как-то найти где оно конвертирует в Юникод, то есть, где с однобайтовых букв переделывает в двухбайтовые символы. Может кто-то разбирается как этот процесс в программах происходит? Я то через отладчик просматривал, ковырял, но не знаю в каком направлении двигаться...
Вот ссылка на плагин, там один файл с расширением VDF это оригинал, а с расш. DAT это крякнутый, можно изменять только VDF: http://rghost.ru/34133571
Заранее всем спасибо.



Ранг: 617.3 (!), 677thx
Активность: 0.540
Статус: Участник

Создано: 31 января 2013 23:25
· Личное сообщение · #2

Многократно используется WideCharToMultiByte это не оно?



Ранг: 0.9 (гость)
Активность: 0=0
Статус: Участник

Создано: 31 января 2013 23:42
· Личное сообщение · #3

Ставил на эти вызовы бряки и никаких телодвижений. Плагин написан на Microsoft Visual C++ (DLL). Применяется библиотека Qt. Обращался на разные форумы - сказали нужно к кодерам. Да, также советовали на WASM_ru, но он почему то в отключке. Просто хочется узнать как этот механизм реализуется на ассемблере (немного разбираюсь) и потом в отладчике как то менять значение.



Ранг: 10.6 (новичок)
Активность: 0.010
Статус: Участник

Создано: 01 февраля 2013 08:53
· Личное сообщение · #4

Попробуй еще бряк на MultiByteToWideChar



Ранг: 512.7 (!), 360thx
Активность: 0.270.03
Статус: Модератор

Создано: 01 февраля 2013 11:36
· Личное сообщение · #5

используйте шпион (apilogger) чтоб понять какие API windows используются



Ранг: 0.9 (гость)
Активность: 0=0
Статус: Участник

Создано: 04 февраля 2013 12:56
· Личное сообщение · #6

Все, сам додумался и исправил. Нужно было PUSH 0 на PUSH 1 поменять. Модеры - можете закрывать тему. Всем спасибки.


 eXeL@B —› Вопросы новичков —› Перевод плагина на русский язык
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати