Логический шрифт
Логический шрифтИсправляем некорректное отображение кириллицыИтак, вы сделали перевод любимой программы на русский язык, создали локализованный
-
Оффлайн
Звание: Легенда
Админ
Сообщений: 2195
Создано тем: 317
Рейтинг: 10
Репа: (245|245|0)
Баллы: 3580
Был: 2024-11-18 08:59
Лайков: 202
Leserg, вот как раз по CreateFontIndirect есть интересный экземпляр и тоже решается таким способом:
Друзья, файлы пересылайте в личке, этот файл пролеченный и выставлять его на всеобщее обозрение рановато.22 мая 2015 - 23:53 / #11 -
Оффлайн
Автор темы
Звание: Ветеран
Команда сайта
Сообщений: 945
Создано тем: 79
Рейтинг: 8
Репа: (131|131|0)
Баллы: 1676
Был: 2024-07-28 22:59
Лайков: 167
Цитата: Nexusвот как раз по CreateFontIndirect есть интересный экземпляр... Попробуй, получится ли у тебя догадаться в чем загвоздка...28 мая 2015 - 22:28 / #12 -
Оффлайн
Автор темы
Звание: Ветеран
Команда сайта
Сообщений: 945
Создано тем: 79
Рейтинг: 8
Репа: (131|131|0)
Баллы: 1676
Был: 2024-07-28 22:59
Лайков: 167
Цитата: Nexusвот как раз по CreateFontIndirect есть интересный экземпляр... Попробуй, получится ли у тебя догадаться в чем загвоздка...28 мая 2015 - 22:28 / #13 -
В данном руководстве рассматриваются API-функции CreateFont и CreateFontIndirect
Довольно редкостное явление. У меня такое было всего один раз, но зато намучался я изрядно
Еще бы надо создать мануал по программам на Дельфи, где в ресурсах встречаются ANSI_CHARSET. Довольно часто переводчики наступают на эти грабли.29 мая 2015 - 00:10 / #14 -
Leserg, значит все таки обратил внимание какую подлянку делает команда REP STOS DWORD PTR [EDI]29 мая 2015 - 00:10 / #15
-
Leserg, значит все таки обратил внимание какую подлянку делает команда REP STOS DWORD PTR [EDI]29 мая 2015 - 00:10 / #16
-
Оффлайн
Автор темы
Звание: Ветеран
Команда сайта
Сообщений: 945
Создано тем: 79
Рейтинг: 8
Репа: (131|131|0)
Баллы: 1676
Был: 2024-07-28 22:59
Лайков: 167
Цитата: Nexusвсе таки обратил внимание какую подлянку делает команда REP STOS DWORD PTR [EDI]
Почему подлянку?! Как раз наоборот, подготавливает область памяти под массив с характеристиками шрифта. Все логично. Многие свойства шрифта по умолчанию имеют значения 0 (ноль), поэтому нет смысла их задавать по отдельности. Правда в своей практике я с таким случаем сталкиваюсь впервые. Однозначно в копилку знаний.30 мая 2015 - 00:26 / #17 -
Оффлайн
Автор темы
Звание: Ветеран
Команда сайта
Сообщений: 945
Создано тем: 79
Рейтинг: 8
Репа: (131|131|0)
Баллы: 1676
Был: 2024-07-28 22:59
Лайков: 167
все таки обратил внимание какую подлянку делает команда REP STOS DWORD PTR [EDI]
Почему подлянку?! Как раз наоборот, подготавливает область памяти под массив с характеристиками шрифта. Все логично. Многие свойства шрифта по умолчанию имеют значения 0 (ноль), поэтому нет смысла их задавать по отдельности. Правда в своей практике я с таким случаем сталкиваюсь впервые. Однозначно в копилку знаний.30 мая 2015 - 00:26 / #18 -
Цитата: LesergПочему подлянку?! Как раз наоборот, подготавливает область памяти под массив с характеристиками шрифта. Все логично.
Потому что из-за этой команды приходится переносить фрагмент кода в конец файла, некуда здесь втиснуть команду MOV DWORD PTR [ESP+93], 1. Это хорошо что здесь в конце секции кода имеется резерв куда можно примостить свой кусочек кода, в этом файле нужно подправить аж пять таких проблемных мест. А не редко мне попадались файлы, где такой резерв в конце попросту отсутствовал. Приходилось или удлинять секцию кода, или же впихивать свои наработки в промежутки между функциямипроцедурами, там где встречается последовательность байт CCCCCCCC... или 9090909090...
И вообще, я лично вместо MOV DWORD PTR [ESP+93], 1 вбил MOV DWORD PTR [ESP+90],CC000000, вдруг у конечного пользователя будет не русская локаль, и тогда будут крякозябли. А так надежнее, все для пользователя, его родимого30 мая 2015 - 23:08 / #19 -
Почему подлянку?! Как раз наоборот, подготавливает область памяти под массив с характеристиками шрифта. Все логично.
Потому что из-за этой команды приходится переносить фрагмент кода в конец файла, некуда здесь втиснуть команду MOV DWORD PTR [ESP+93], 1. Это хорошо что здесь в конце секции кода имеется резерв куда можно примостить свой кусочек кода, в этом файле нужно подправить аж пять таких проблемных мест. А не редко мне попадались файлы, где такой резерв в конце попросту отсутствовал. Приходилось или удлинять секцию кода, или же впихивать свои наработки в промежутки между функциямипроцедурами, там где встречается последовательность байт CCCCCCCC... или 9090909090...
И вообще, я лично вместо MOV DWORD PTR [ESP+93], 1 вбил MOV DWORD PTR [ESP+90],CC000000, вдруг у конечного пользователя будет не русская локаль, и тогда будут крякозябли. А так надежнее, все для пользователя, его родимого30 мая 2015 - 23:08 / #20