Здравствуйте Господа !
Решил попробовать ваш русссификатор. Прежде всего огромное спасибо за него.
Но возникло несколько вопросов и пожеланий:
1. Было бы правильнее, если пакет будет поставлялся с документцией.
Скриншотов не всегда достаточно. Далее обьясню почему.
2. Совсем бы было хорошо, чтобы поставлялись и файлы *.RC
Ведь часто возникает необходимость дописывать свой код и вставлять
свои элементы управления в стандартные диалоги. Получается чтобы
сделать это, необходимо заново руссифицировать диалоги, а не
использовать ваши шаблоны с собственными добавлениями.
Ну и теперь о несовсем понятном:
Кидаем компонент в проект. Ставим по умолчанию русский язык. Компилим.
Запускаем на устройстве. Все хорошо, все работает.
Далее на устройстве ставим Input Locate по умолчанию русский. Перезагружаемся.
Стучим по клавиатуре.. Буквы вообще не появляется... Ок, смотрим Debug Output..
Ругается - "Keyboard: Keypress ignored since Device Layout is not set"...
Лады, начинаем разбиратся... Смотрим загрузку KeybRus DLL.. Ругается...
Ругань страшная... Смотрим код, идем по шагам. Доходим до сути проблемы..
А именно функции DeviceLayoutMatchesPDD в laymgr.cpp, где в цикле ищется
точка входа в keybrus.dll:
.
.
.
for (dwIdx = 0; dwIdx < dim(rgpszProcNames); ++dwIdx) {
LPCTSTR pszCurrProcName = rgpszProcNames[dwIdx];
if (GetDeviceLayoutEntry(pszDll, pszCurrProcName, &hDll,
&pfnDLEntry) == TRUE)
.
.
.
Если кратко, то код начинает работать таким образом, что исходя из записей в keybrus.reg,
здесь ищется функция PS2_AT_00000419, в не PS2_AT_00010419. Лады, делаем
исправления с PS2_AT_00010419 на PS2_AT_00000419 в коде руссификатора, компилим и
все начинает работать нормально в любых положениях.
Так вот отсюда вопрос - зачем она была названна таким образом ? Возможно
в этом есть какой-то скрытый смысл ? Другие параметры сборки ?
И вот тут возникает вопрос о документации !!!
PS: Сборка стандартная. Ничего там такого лишнего пока нету. Все по умолчанию.
Может быть я где-то что-то недопонял ?
С уважением,
Николай.