0

Тема: Программа для ЧПУ

Программа для ЧПУ

Система Windows8 X64. Имеется EXE-шник. Программа для управления частотными приводами.
Программа - это интелектуальная разработка программиста или группы программистов, в которой реализованы определеные алгоритмы для выполнения каких-то конкретных задач. Наваять можно что угодно, в зависимости от уровня подготовки и опыта работы отдельно взятого программиста.

В этой программе для строк меню используется кодировка Unicode, а для строк диалоговых окон - ANSI. Так как исходная строка имеет кодировку Unicode, то выполняется конвертация из Unicode в ANSI. Для символов латинского алфавита преобразование можно сделать элементарно: у каждого символа просто удаляется второй байт, который является нулевым.

После установки программы в папке Bin есть две dll.  res044.dll и res049.dll
Вот эти dll-ки   (42176053) (42176054)


Подскажите что делаю не так. В любом редакторе ресурсов я вижу вот это

Программа для ЧПУПрограмма для ЧПУ

Так выглядят диалоговые окна. А меню программы отображается на русском.

Программа для ЧПУ

Это после HEX редактора

Программа для ЧПУ

После HEX редактора в Radialix-е. Вот попробовал в HEX редакторе. Получается что меню программы в кодировке UTF-16 а диалоговые окна в ANSI такое возможно ???????

Рейтинг поста: 0

(26-01-2021 17:54:38 отредактировано WYLEK)

Re: Программа для ЧПУ

Подскажите что делаю не так. В любом редакторе ресурсов я вижу вот это

Показать / Скрыть текст

Программа для ЧПУ

Когда запускаю локализованную программу вижу вот это

Показать / Скрыть текст

Программа для ЧПУ

Так выглядят диалоговые окна. А меню программы отображается на русском.

Рейтинг поста: 0

(04-11-2014 15:04:29 отредактировано dinis124)

Re: Программа для ЧПУ

Будем играть в угадай что перевожу? Если объяснить подробнее не можете, почитайте, все есть к примеру и в этой ветке. На вскидку можете в редакторе сменить кодировку на UTF-8 и проверить файл запустив на исполнение. Если не получилось, на вкладке ресурсы посмотрите ANSI_CARSET смените на RUSSIAN_CARSET. Если не получается то нужно имя программы будет отгадать для начала.
Я говорю о редакторе Radialix в данном случае. В нем вот так: видео

Рейтинг поста: 0

(26-01-2021 17:57:11 отредактировано WYLEK)

Re: Программа для ЧПУ

Извиняюсь по порядку.
Ситcема Windows8 X64. Имеется EXE-шник  здесь Программа для управления частотными приводами.
После установки программы в папке Bin есть две dll.  res044.dll и res049.dll
Вот эти dll-ки          http://rusfolder.net/files/42176053            http://rusfolder.net/files/42176054.     (42176053) (42176054)
Проблему описал выше.

Рейтинг поста: 0

Re: Программа для ЧПУ

yaesu-103
Ехе не качается. 10 минут жду.

Xotabush
Когда не распаковывается,  ставлю вчистую виртуалку, предварительно сделав снимок системы.

Рейтинг поста: 0

(04-11-2014 18:17:09 отредактировано yaesu-103)

Re: Программа для ЧПУ

Ехе не качается. 10 минут жду.

http://rusfolder.net/files/42176635

Я на виртуалке под ХР пробовал. Тоже самое

Рейтинг поста: 0

(26-01-2021 17:58:53 отредактировано WYLEK)

Re: Программа для ЧПУ

dinis124

Показать / Скрыть текст

Программа для ЧПУ

Это после HEX редактора

Показать / Скрыть текст

Программа для ЧПУ

После HEX редактора в Radialix-е.

Рейтинг поста: 0

(06-11-2014 04:05:37 отредактировано yaesu-103)

Re: Программа для ЧПУ

dinis124,
Вот попробовал в HEX редакторе. Получается что меню программы в кодировке UTF-16 а диалоговые окна в ANSI такое возможно ???????

Рейтинг поста: 0

Re: Программа для ЧПУ

Вот попробовал в HEX редакторе. Получается что меню программы в кодировке UTF-16 а диалоговые окна в UTF-8 такое возможно


надо Leserg"a подождать, это он знает, что за проблема у немецкого и русского шрифтов.
ну неможет быть меню строки с поддержкой кириллицы, а диалоги без.

Возможно всё! На невозможное просто требуется больше времени.
Мудрец из Шангри Ла
Программа для ЧПУ

Рейтинг поста: 0

(26-01-2021 17:59:31 отредактировано WYLEK)

Re: Программа для ЧПУ

Получается что меню программы в кодировке UTF-16 а диалоговые окна в ANSI такое возможно ?

Конечно, а почему бы и нет? Программа для ЧПУ

ну неможет быть меню строки с поддержкой кириллицы, а диалоги без.


Чё не может? Программа - это интелектуальная разработка программиста или группы программистов, в которой реализованы определеные алгоритмы для выполнения каких-то конкретных задач. Наваять можно что угодно, в зависимости от уровня подготовки и опыта работы отдельно взятого программиста.

В этой программе для строк меню используется кодировка Unicode, а для строк диалоговых окон - ANSI. Так как исходная строка имеет кодировку Unicode, то выполняется конвертация из Unicode в ANSI. Для символов латинского алфавита преобразование можно сделать элементарно: у каждого символа просто удаляется второй байт, который является нулевым. Например, возьмем строку &Drive. В кодировке Unicode, в НЕХ-коде, она выглядит так:

260044007200690076006500

Здесь на каждый символ отводится два байта, т.е. к примеру символ D - 4400, и у символов латинского алфавита второй байт всегда нулевой. Чтобы преобразовать строку в ANSI нужно просто удалить нулевые байты и получим НЕХ-код вида

264472697665

Это будет та же строка &Drive, но уже в кодировке ANSI. Это самый простой и быстрый способ преобразования строки из одной кодировки в другую. Причем, для строк латинского алфавита он прекрасно работает как в одну сторону, так и в другю (Unicode <-> ANSI). Посмотрите на код строки в утилите 1251 to НЕХ, он одинаковый во всех кодировках:

Программа для ЧПУ

А вот с другими языками, символы которых отличаются от латиницы, такой финт не пройдет. Переведем строку на русский - &Привод. В кодировке Unicode, в НЕХ-коде, она выглядит так:

26001F044004380432043E043404

По сказанному выше алгоритму преобразования удалим у каждого символа второй байт и получим код

261F4038323E34

Но если вы посмотрите на код этой строки для кодировки ANSI, то увидите там совершенно другую картину

26CFF0E8E2EEE4

Программа для ЧПУ

Как видите, 261F4038323E34 (& @82>4) это совсем не 26CFF0E8E2EEE4 (&Привод). Вот и получается в программе вместо нормальных строк ерунда.

Я не знаю, какой алгоритм преобразования строк использовал программист, и показал вам один из возможных вариантов. Почему он (программист) поступил таким образом, мы никогда не узнаем. Но разрешить подобную ситуацию в данном случае можно.

Для диалоговых окон перевод строки необходимо записывать символами кодовой страницы windows-1252, т.е. в нашем понимании - кракозябрами. Например, строка &Отмена -> &Îòìåíà. Применительно к редактору Radialix, это будет выглядеть следующим образом:

Программа для ЧПУ

Тогда в работающем приложении будет все корректно

Программа для ЧПУ

Неудобство такого способа - это невозможность прямого редактирования строк в случае опечаток, неточностей перевода и т.д. Нужно будет отдельно пользоваться текстовым редактором, в котором можно просто переключать кодировку. Например, AkelPad

Скопировали из Radialixa строки в текстовый редактор (кодировка windows-1251)

Программа для ЧПУ

Потом переключили кодировку на windows-1252

Программа для ЧПУ

Получили кракозябры. Теперь переносим строки обратно в Radialix. Все.

Другой вариант более сложный. Нужно найти в программе код, где выполняется преобразование строк и сделать в нем соответствующие изменения, если это возможно. К сожалению, в этом варианте я вам пока ничем не могу помочь.

Кто ищет, тот всегда найдет!
Программа для ЧПУ

Рейтинг поста: 0

Re: Программа для ЧПУ

Вот спасибо большое, всё разложил по полочкам.
А то я уже не один месяц бьюсь с этой прогой. Я начинающий в этом деле.  Только вчера пришёл к выводу что кодировки разные. (первый раз с таким столкнулся)
Я попробовал в HEX редакторе править а потом напрямую открыть не в Radialixe (там были кракозябры) а в самой проге.

Рейтинг поста: 0