System32 x SysWOW64

Como assim? DLL’s 32 bit vão para a pasta System32, certo? Não! Não ao ao menos se seu Windows for 64 bit! Confuso, não é? Também acho, mas é isso mesmo!

Bem, como você já sabe (ou deveria saber) toda DLL que acompanha seu software deve possuir a mesma “bitagem” do EXE, ou seja, se seu EXE é 32 bit, qualquer DLL utilizada por ele deve ser 32 bit. E claro, se o EXE é 64 bit, DLL’s que o acompanham devem ser 64 bit.

Importante: Não se esqueça que a IDE do Delphi é 32 bit, logo, qualquer DLL client de banco de dados usada pelo FireDAC, DBExpress, etc. devem ser 32 bit para conseguir acessar o BD de dentro da ferramenta! 😉

Pois bem, a pasta System32 é e quase sempre foi o “diretório do sistema” padrão do Windows. Independentemente se o Windows é 32 ou 64 bit, quando algum programa pergunta pra ele qual é o “diretório do sistema”, a resposta é “C:\Windows\System32”.

Porém, quando o Windows é 64 bit, tudo que está lá dentro do diretório System32 também é 64 bit!

Nossa, e como o Windows faz pra conseguir rodar aplicações 32 bit se tudo lá dentro é 64? Por isso que foi criado um diretório alternativo para o que é 32 bit 🙂 …mas chamado SysWOW64 🙁

A ideia da MS foi criar um diretório “Windows on Windows64”, por isso o nome. E por isso a confusão também!

Por debaixo dos panos, quando um EXE 32 bit solicita o “diretório do sistema” ao Windows, ele entrega o caminho “C:\Windows\System32” mas que na realidade está apontando para “C:\Windows\SysWOW64″…. uma espécie de redirecionamento inteligente. Só esqueceram de seguir este princípio da inteligência no nome da pasta! =)

Enfim, se você pesquisar mais a respeito vai encontrar os artigos técnicos com mais detalhes, mas por agora o importante é saber que no Windows 64 bit, DLL’s 32 vão na pasta 64 e as DLL’s 64 vão na pasta 32. Eita!

E aí?! Você já sabia disso? Pelo sim ou pelo não, compartilhe! Com certeza alguém vai ser ajudado! 😉

Comments 3

Deixe sua opinião

%d blogueiros gostam disto: