Dll's no System32 versus System Path

3

No Windows, qual é a preferência de como o Windows examina essas pastas para localizar .dlls? Por exemplo, se eu tiver duas versões da mesma dll, uma na pasta System 32 e outra no System Path, onde o Windows olha primeiro?

    
por AlbertoPL 10.07.2009 / 02:22

4 respostas

2

O Windows procura primeiro por "DLLs conhecidas", como Kernel32.dll e User32.dll.

O Windows procura as DLLs na seguinte sequência:

O diretório do sistema Windows. A função GetSystemDirectory recupera o caminho deste diretório.

O diretório do Windows. A função GetWindowsDirectory recupera o caminho deste diretório.

O diretório em que o módulo executável do processo atual está localizado.

O diretório atual.

Os diretórios listados na variável de ambiente PATH.

Observe que, em processos de 32 bits nas janelas de 64 bits, o uso do diretório system32 de 32 bits e não do de 64 bits.

É um pouco diferente de pré sp1 de 2k3 ou XP.

    
por 10.07.2009 / 03:49
0

Depende da sua variável de ambiente PATH , mas normalmente %windir%\System32 é adicionado antes de %windir% .

Usando meu chapéu de desenvolvedor: sempre que possível, evito instalar qualquer coisa em qualquer uma dessas pastas, especialmente em versões recentes do sistema operacional com suporte de montagem lado a lado (por exemplo, XP / Vista / 2008).

Se você instalou um aplicativo que coloca um .DLL em ambos os locais, entrarei em contato com o desenvolvedor para corrigi-lo.

    
por 10.07.2009 / 02:35
0

Tenha uma ideia:

link

Observe que "o pedido foi alterado!" comentário que referencia esta página:

link

    
por 10.07.2009 / 02:34
0

O carregamento da DLL é tratado pela função LoadLibrary da API do Windows e a ordem de pesquisa é descrita na documentação para isso: link

    
por 10.07.2009 / 15:02