Re: Порча переменных окружения в FPD | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Имелось в виду что "физически" Process Environment устроен по разному в Винде и в Досе. В Винде переменные окружения могут быть юникодными (это определяется при старте процесса - обычно "явно" блок переменных не создают, а наследуют от запускающего процесса - и так по цепочке вплоть до explorer.exe, потому чаще всего юникод и будет использоваться), и уже АПИ функции доступа к ним могут переводить их в ANSI (при использовании *A вариантов функций). В DOS однозначно никакого юникода нет - так что блок переменных обязан быть переведен в ANSI - и уж как именно это будет сделано эмулятором (от чего будет зависеть "кодовая страница" выбранная для перевода), и не повредятся ли при этом не-латинские символы - и составляет суть проблемы. ------------------ WBR, Igor |
Re: Порча переменных окружения в FPD | |
---|---|
akvvohinc Сообщений: 4201 Откуда: Москва Дата регистрации: 11.11.2008 |
3) после того, как я выполнил CHCP по полному пути - C:\windows\system32\chcp - получил: Текущая кодовая страница: 866 8) ДосБокса нет, запускаю start.bat из TC. 9) рядом с foxprox.EXE точно нет foxprox.PIF 10) _default.pif есть, но не в SYSTEM32, а здесь C:\WINDOWS\ yadi.sk 11) COMSPEC=C:\WINDOWS\SYSTEM32\COMMAND.COM 12) запускаю start.bat руками из TC |
Re: Порча переменных окружения в FPD | |
---|---|
andrewk Автор Сообщений: 174 Откуда: Красноярск Дата регистрации: 15.05.2005 |
Ага, там. Файл скачал, можешь удалять. Ну самый обычный стандартный pif, ссылается на стандартные *.nt. Почему не ищет в system32 – наверное, в связи с тем, о чём я выше писал про PATH. К теме не относится, но раз уж дошли до pif-файлов. Если тебя всё устраивает, то и ладно. У меня рядом с exe свой pif, который ссылается на свои Config.nt и Autoexec.nt. В стандартном Config.nt files=40, чего может сильно не хватать. Стандартный Autoexec.nt запускает mscdexnt.exe и redir.exe, которые не нужны, и устанавливает ненужную SET BLASTER. При этом не запускает русификатор клавиатуры. У меня так, работает под WinXP–Win10:
Да, собственно, тема, видимо, себя исчерпала. Как и сказал Игорь, проблема в конвертации NTVDM-ом переменных из юникода. Пока работает запускающий батник, CMD, как нативный виндовый процесс, использует «родные» значения, в юникоде. Вот, например, test.bat:
При запуске ntvdm тоже происходит конвертация, но какая-то кривая. Кто это делает: процесс, запускающий ntvdm, или сам ntvdm на старте запрашивает окружение (и либо получает криво, либо сам потом портит), или ntvdm при запуске целевой программы передаёт ей кривое окружение – уже не важно, всё это глубокие внутренности, повлиять на которые, к сожалению, не удалось. |
Re: Порча переменных окружения в FPD | |
---|---|
akvvohinc Сообщений: 4201 Откуда: Москва Дата регистрации: 11.11.2008 |
Я просто поправил нужным образом эти стандартные файлы, и они используются для всех FPD-программ. |
Re: Порча переменных окружения в FPD | |
---|---|
andrewk Автор Сообщений: 174 Откуда: Красноярск Дата регистрации: 15.05.2005 |
Не, если чисто для себя, то конечно. Я это написал из соображений универсальности, чтоб на чужих компьютерах работало так же, как на моём. |
© 2000-2024 Fox Club  |