Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #63, ФЕВРАЛЬ 2006 г.

все на одной дискете

КРИС КАСПЕРСКИ АКА МЫЩЪХ

Спецвыпуск: Хакер, номер #063, стр. 063-006-4


Лучше всего брать сам FAR из раздела update (www.farmanager.com/updates.php?l=ru), поскольку здесь он поставляется в простом архиве без инсталлятора (а инсталлятор, будучи GUI-приложением, естественно, не запускается под doswin32). Распаковав архив, увидишь файлы far.exe (главный исполняемый файл), far.map (карта памяти для отладки — можно смело стирать), farrus.lng/fareng.lng (русское/английское меню) и farrus.hlf/fareng.hlf (русская и английская помощь). Два языковых комплекта на системной дискете совершенно ни к чему, от одного из них можно избавиться — от русского. Английский лучше оставить на случай проблем с русификатором.

Как вариант, «выдираешь» эти файлы из ранее установленного дистрибутива. Для сохранения своих настоек запусти SaveSettings.bat (входит в штатную поставку FAR'а). На диске образуется два файла: FarSave1.reg и FarSave2.reg. Объедини их в один, для чего удали из FarSave2.reg строку «REGEDIT4» и скопируй остаток внутрь FarSave1.reg, размещая его между «REGEDIT4» и «[HKEY_CURRENT_USER\Software\Far]». Берешь «dw32reg.exe» (входит в комплект «дополнительных системных утилит», поставляемых вместе с doswin32) и запускаешь его: «dw32reg.exe /C FarSave1.reg». Образуется файл «DOSWIN32.RGD», который нужно скопировать в одну директорию с doswin32.exe. Это и есть твой реестр, с которым будет работать FAR.

Большинство win32-программ не запускаются из FAR'а, поскольку практически все exe сейчас собираются без релокаций и претендуют на память, уже занятую FAR'ом. Приходится каждый раз выходить из FAR'а, запуская их из чистой командной строки. Неудобно, конечно, но терпимо (текущий каталог при этом сохраняется). Можно обойти программу перебазированием FAR'а. Понадобится утилита rebase.exe, входящая в состав MS Visual Studio и Platform SDK, которая запускается так: «rebase -b 0x80000000 far.exe». В нормальных условиях адрес 80000000h занят операционной системой и никогда не выделяется прикладным приложениям, поэтому никаких конфликтов с запускаемыми программами под doswin32 не возникнет. Такой файл будет запускаться и под Windows NT, которая автоматически переместит его в свободный регион. С Windows 9x имеются определенные проблемы (этот адрес занят совместно используемыми memory-mapped файлами), и лучше зачеркнуть два нуля, перебазировавшись на 0x800000, но тогда будь готов к возможным конфликтам с уже загружаемыми приложениями. Alfa-версии FAR'а обычно собираются без релокаций и не могут быть перебазированы. Все beta- и stable-версии полностью перемещаемы. Собственные программы лучше всего собирать с перемещаемыми элементами (ключ /FIXED:NO линкера MS link), чтобы «подружить» их с FAR'ом. Если программа компоновалось линкером ulink (создан все тем же Юрием Хароном) с ключом -ay[x], то под Windows задача пойдет как «родное» win32-приложение. Под MS-DOS будет автоматически искать doswin32 в текущем каталоге и в PATH'ах, самостоятельно загружая расширитель и освобождая тебя от лишних телодвижений.

Назад на стр. 063-006-3  Содержание  Вперед на стр. 063-006-5