WinXP FAQ (Часто задаваемые вопросы по ОС Windows XP) | страница 4



1.6. Как насчёт совместимости со старым программным обеспечением?

Как и в W2k, ядро NT накладывает свои ограничения, поэтому нельзя ожидать от XP абсолютно полной совместимости со старым программным обеспечением. Однако, по сравнению с w2k, ситуация с совместимостью несколько улучшилась. Из наиболее заметных изменений можно отметить появившийся звук в старых ДОСовских играх, что было весьма сложно добиться в W2k. Поддерживается эмуляция Sound Blaster 2 и General MIDI, так что теперь можно без плясок с бубном и сторонних утилит заставить работать со звуком такие старые хиты как Worms, Duke Nukem 3D, Warcraft 1 и 2, Dune 2. Кроме этого, в XP встроен режим совместимости со старыми ОС. Чтобы его задействовать, необходимо создать ярлык (shortcut) на проблемную программу, и выбрать закладку Compatibility из Properties ярлыка. В этой закладке можно указать, под видом какой ОС требуется запускать программу, надо ли менять разрешение или глубину цвета при этом (необходимо для многих старых программ).

В отличие от acompat.exe из дистрибутива W2k, XP в режиме совместимости не просто рапортует программе, что она - это не она (по типу старой утилитки из MS-DOS под названием setver), но и эмулирует структуру реестра Windows, свойственную той или иной версии ОС. Если нет желания лазать по свойствам файлов и ярлыкам самостоятельно, можно воспользоваться Program Compatibility Wizard, из кнопки Start - Programs - Accessories. Впрочем, не стоит ожидать от этого механизма чуда, 100% совместимости добиться так и не удалось, поэтому не будет лишним сходить на сайт производителя вашей программы и посмотреть, не появился ли там апдейт, делающей её совместимой с XP.

1.7. А что знаменитый DLL-hell?

Этой проблеме было уделено самое пристальное внимание. Причём, к этому вопросу подошли более комплексно, чем когда-либо до этого. Во первых, никому не дадут просто так перезаписать какой либо DLL в системной директории. Кроме этого, остался знакомый нам по W2k механизм SFC, System File Protection. Эта система мониторит основные системные файлы, и в случае замены какого-либо из них, меняет всё обратно. Кроме этого, в Microsoft почему то позаботились об криворуких программистах, которые не могут писать нормально, и им обязательно надо чтобы их творение работало с собственными DLL, подменяющими системные. При инсталляции такой программы, эти переделанные DLL всё-таки будут записываться на диск, но не вместо системных. Потом, при запуске такой программы, в случае вызова DLL должен вызываться не системный файл, а заранее сохранённый файл именно от этой программы. Хранятся эти DLL в подкаталоге WinSxS, что означает Windows Side by Side (бок о бок), что весьма символично.