Nas próprias palavras do YouTuber MattKC, ele portou “milhares de aplicativos” para o Windows 95 passando pela dificuldade de portar o recurso mais proeminente do Windows 98, o .NET Framework, para o antigo 95. No final das contas, as principais limitações do Windows 95 em comparação ao 98 são: Além da falta do .NET Framework, o Windows 98 é surpreendentemente próximo de seus antecessores em design e funcionalidade. Mas por que ele fez isso?
O vídeo de 51 minutos, que assistimos várias vezes, faz você se perguntar se ele está disposto a fazer um filme sobre as melhorias do Windows 95, 28 anos após seu lançamento. aquela época. O vídeo original, incorporado abaixo, também tem algumas tangentes divertidas de ação ao vivo que definem o tom e o caráter, incluindo alguns intervalos lindamente filmados.
Amaldiçoar KernelEx não funciona no Windows 95. MattKC precisa encontrar uma maneira de fazer o .NET Framework funcionar corretamente. Existem muitos arquivos .DLL ausentes e a ferramenta de despejo pode identificar os nomes dos arquivos ausentes para que você possa substituí-los ou ignorá-los. Mesmo depois de portar todos os arquivos DLL ausentes, o .NET ainda persiste.
O .NET requer mais chaves de registro para funcionar no Windows 95 do que segundos no vídeo original de 51 minutos e 53 segundos. O número total de chaves de registro necessárias foi 5.409.
No entanto, mesmo se portado, o .NET não pode ser depurado JIT (Just In Time) adequadamente no Windows 95. O culpado parece ser um misterioso driver herdado do Windows “ndphlpr” que não é usado no Windows 98, mas é “obrigatório” pelo .NET porque trava. sem ele. MattKC decidiu que mentir sobre ter ndphlpr em seu PC poderia funcionar, mas depois de algumas pesquisas ele descobriu que ninguém sabia o que era, então decidiu consertar completamente.
Isso resulta em um erro de exceção de código de máquina. Como a ferramenta WinDebug não oferece suporte nativo ao .NET (e ainda não deveria existir), MattKC tem que lidar com problemas de compatibilidade ao testar o Windows 95 e 98 em paralelo. W95 e W98 rodaram por dias no WinDebug para encontrar o problema, e redefinir o progresso foi uma dor.
Eventualmente, MattKC finalmente encontrou o bloco de código bloqueado que o WinDebug não conseguia ler. Após a decodificação, o código revelou:
F2 0F 10 44 24 08 F2 05 2CCO
Este código com erros estava relacionado à falta de APIs do Windows para algumas funcionalidades de clique. As exceções são que “NotifyWinEvent in user32.dll” não foi encontrado e o SSE2 ofuscou as instruções no código. Em seguida, tive que corrigir o .NET para remover a dependência do SSE2, mas isso não corrigiu nenhuma compatibilidade, apenas o próprio depurador .NET.
Depois de mais alguma depuração da Ilha Lego, MattKC finalmente codificou manualmente um método em que a mensagem de exceção/erro era impressa na janela em vez de ser ocultada. Isso funcionará e permitirá que você resolva a última parte da compatibilidade de DLL. Depois disso, o Rebuilder for Lego Island e um aplicativo de captura de tela personalizado e mais moderno agora funcionam corretamente no Windows 95.
E esta é mais uma figura do lendário engenheiro “louco totalmente determinado”.

