Por favor, explique conceitos básicos de um arquivo DLL e seu registro no Windows

7

O que é uma DLL? O que isso está fazendo no nosso computador? Por que precisamos registrá-lo? O registro de DLL é um processo comum de um único comando? Está instalado / registrado enquanto estamos instalando um software?

    
por Hennes 20.05.2009 / 12:14

5 respostas

7

DLLs são bibliotecas de links dinâmicos:

Dynamic-link library, or DLL, is Microsoft's implementation of the shared library concept in the Microsoft Windows and OS/2 operating systems. These libraries usually have the file extension DLL, OCX (for libraries containing ActiveX controls), or DRV (for legacy system drivers).

Veja Biblioteca de links dinâmicos na Wikipedia.

    
por 20.05.2009 / 12:16
4

dll significa "Biblioteca de vínculo dinâmico". Como o nome indica, é uma coleção de funções (libray) que é vinculada ao seu programa dinamicamente durante o tempo de execução (comparado à vinculação estática). Geralmente dll conter apenas a função. "Modern". NET dll contém objetos .NET normais.

Dlls podem ser registradas. Esse processo (por exemplo, regsvr32 N: \ ame.dll) torna essa dll conhecida pelo sistema operacional. Como alternativa, a dll pode ser colocada no mesmo diretório que o executável ou em um diretório no Path. Uma segunda alternativa é carregar a dll via API do Windows (LoadLibrary ()).

O procedimento normal é registrar a dll durante a instalação ou apenas copiá-la no mesmo diretório que o executável.

    
por 20.05.2009 / 12:53
3

Uma dll é uma biblioteca de funções que pode ser usada por outros programas. Nem todas as dll precisam ser registradas, o que se aplica apenas àquelas que expõem sua funcionalidade como objetos COM .

Dll's pode vir de muitos lugares; Um bom número deles compõe o Windows como tal, outros vêm como parte de vários softwares que você instala. O Microsoft Office, por exemplo, registra dlls que expõem as interfaces COM que permitem que outros aplicativos incorporem a funcionalidade dos aplicativos do Office.

    
por 20.05.2009 / 12:17
2

Um programa é uma série de instruções. Normalmente, o computador irá ler e executar instruções, uma após a outra, em série.

Isso é ótimo, mas a maioria dos programas fará a mesma tarefa em vários momentos, ou na mesma tarefa, com pequenas variações em vários momentos. Em vez de reescrever as instruções dessa tarefa várias vezes, uma opção disponível para programadores é empacotar essas instruções em uma sub-rotina ou função .

Então, em vez de copiar as instruções várias vezes, você diz ao programa para chamar essa função e, portanto, economizar espaço. Linking liga esta função a todos os lugares que a chamam no programa, quando o programa é construído. O programa também é mais fácil de manter, pois, se você quiser alterar essa tarefa, poderá alterá-lo em um lugar e não em todo o programa.

A maioria dos programas tem funções que são usadas dentro desse programa. Eles fazem parte desse programa, são carregados e só são acessíveis a esse programa.

Mas e se você tiver uma ótima função (como uma que tire uma data e retorne o dia da semana) e deseje usá-la em muitos programas diferentes? Bibliotecas de links dinâmicos , ou arquivos .dll no Windows, permitem isso. É chamado ligação dinâmica porque a ligação ocorre em tempo de execução quando o programa é carregado em vez de no tempo de compilação quando é compilado (neste caso é chamado ligação estática ).

Você pode empacotar a função em um arquivo .dll específico e, em seguida, informar o programa principal que deseja usar ou importar funções desse arquivo .dll.

Agora, se você quiser atualizar o que essa função faz, ou corrigir bugs, você está em uma situação ainda melhor, já que tudo o que você precisa fazer é alterar as funções em um arquivo e cada programa que o usa será automaticamente atualizado . A desvantagem é agora o seu programa depende de outro arquivo para funcionar corretamente. Normalmente, os benefícios superam as desvantagens de tudo, exceto os programas de recuperação do sistema de emergência que precisam funcionar quando você não pode carregar nada do disco e tal.

    
por 24.08.2011 / 05:20
0

Não vamos esquecer o rundll32.exe. Este utilitário do Windows permite chamar uma função exportada em uma dll. link

    
por 20.05.2009 / 13:55

Tags