Тысячи современных приложений заработали в Windows 95 благодаря .NET Framework

YouTuber MattKC, по его собственным словам, портировал «тысячи приложений» на Windows 95, кропотливо перенося самую выдающуюся функцию Windows 98,.NET Framework

Thumbnail: .NET Framework.NET Framework — программная платформа, выпущенная компанией Microsoft в 2002 году. Основой платформы является общеязыковая среда исполнения Common Language Runtime (CLR), которая подходит для различных языков программирования. Функциональные возможности CLR доступны в любых языках программирования, использующих эту среду. В настоящее время .NET Framework развивается в виде .NET. Считается, что платформа .NET Framework является ответом компании Microsoft на набравшую к тому времени большую популярность платформу Java компании Sun Microsystems (ныне принадлежит Oracle). Википедия

, обратно в старую 95. В конце концов, основным ограничением Windows 95 по сравнению с 98 является отсутствие.NET Framework — во многих других отношениях Windows 98 удивительно близка к своей предшественнице по дизайну и функциям. Но почему он это сделал?

51-минутное видео в основном демонстрирует подлинный энтузиазм по поводу давно ушедшей эпохи аппаратного и программного обеспечения. В оригинальном видео, прикрепленном ниже, также есть несколько забавных моментов с живыми актерами, которые задают тон и характер, включая несколько прекрасно снятых антрактов.

Для работы .NET в Windows 95 требуется больше ключей реестра, чем секунд в исходном 51-минутном 53-секундном видео — общее количество необходимых ключей реестра составило 5409.

Но даже после портирования .NET не может должным образом отлаживать себя в Windows 95. Причиной, по-видимому, является «ndphlpr», загадочный устаревший драйвер Windows, не используемый в Windows 98, но «необходимый» для .NET. MattKC определяет, что ложь компьютеру о наличии ndphlpr может сработать, но после того, как исследование показывает, что никто не знает, что это такое, он пытается полностью это исправить.

Это выдает ошибку исключения машинного кода. Инструмент WinDebug не поддерживает .NET изначально (поскольку он еще не должен существовать), поэтому MattKC все еще приходится иметь дело с некоторыми проблемами совместимости при параллельном тестировании Windows 95 и 98. W95 и W98 запускались в WinDebug в течение нескольких дней, чтобы найти проблему.

В конце концов MattKC наконец нашел заблокированный блок кода, который WinDebug не смог прочитать. После расшифровки код оказался следующим:

F2 0F 10 44 24 08 F2 05 2C СО

Этот код с ошибкой относился к отсутствующему Windows API для некоторых функций щелчка. Исключением было то, что он не мог найти «NotifyWinEvent в user32.dll», а SSE2 запутывал инструкцию в коде. Затем пришлось внести исправления в .NET, чтобы устранить зависимость от SSE2, но это не исправило совместимость, а только сам отладчик .NET.

После долгих отладок MattKC в конце концов вручную закодировал метод, позволяющий выводить сообщение об исключении/ошибке в окно, а не там, где он его не видит. Это работает и позволяет сгладить последнюю часть совместимости DLL. После этого Rebuilder for Lego Island и специальное, более модернизированное приложение для создания снимков экрана теперь отлично работают в Windows 95.

Подписаться на обновления Новости / Технологии

0 комментариев

Оставить комментарий