Como criar e usar DLLs no Delphi

Uma biblioteca de vínculo dinâmico (DLL) é uma coleção de rotinas (pequenos programas) que podem ser chamadas por aplicativos e outras DLLs. Como unidades, eles contêm código ou recursos que podem ser compartilhados entre vários formulários.

O conceito de DLLs é o núcleo do design de arquitetura do Windows e, na maior parte, o Windows é simplesmente uma coleção de DLLs.

Com o Delphi, você pode escrever e usar suas próprias DLLs e até chamar funções, independentemente de elas terem sido ou não desenvolvidas com outros sistemas ou desenvolvedores, como Visual básicoou C / C ++.

Criando uma biblioteca de vínculo dinâmico

As linhas a seguir demonstram como criar uma DLL simples usando Delphi.

Para o começo, inicie o Delphi e navegue até Arquivo> Novo> DLL para criar um novo modelo de DLL. Selecione o texto padrão e substitua-o por este:

biblioteca TestLibrary;

usa SysUtils, Classes, Diálogos;

procedimento DllMessage; exportação;início

 ShowMessage ('Olá mundo a partir de uma DLL Delphi');

fim;

exportações DllMessage;

começo. 

instagram viewer

Se você olhar para o arquivo de projeto de qualquer aplicativo Delphi, você verá que ele começa com a palavra reservada programa. Por outro lado, as DLLs sempre começam com biblioteca e então um usa cláusula para quaisquer unidades. Neste exemplo, o DllMessage procedimento a seguir, que não faz nada, mas mostra uma mensagem simples.

No final do código fonte, há um exportações instrução que lista as rotinas que são realmente exportadas da DLL de forma que possam ser chamadas por outro aplicativo. O que isso significa é que você pode ter, digamos, cinco procedimentos em uma DLL e apenas dois deles (listados no exportações ) pode ser chamado de um programa externo (os três restantes são "subprocedimentos").

Para usar esta DLL, precisamos compilá-la pressionando Ctrl + F9. Isso deve criar uma DLL chamada SimpleMessageDLL.DLL na sua pasta de projetos.

Finalmente, vamos dar uma olhada em como chamar o procedimento DllMessage de uma DLL carregada estaticamente.

Para importar um procedimento contido em uma DLL, você pode usar a palavra-chave externo na declaração de procedimento. Por exemplo, dado o procedimento DllMessage mostrado acima, a declaração no aplicativo de chamada ficaria assim:

procedimento DllMessage; externo 'SimpleMessageDLL.dll' 

A chamada real para um procedimento nada mais é do que:

 DllMessage; 

O código inteiro para um formulário Delphi (nome: Formulário 1), com um TButton (denominado Button1) que chama a função DLLMessage, tem algo parecido com isto:

unidade Unidade 1;

interface


usa

 Windows, Mensagens, SysUtils, Variantes, Classes,

 Gráficos, controles, formulários, caixas de diálogo, StdCtrls;


tipo

 TForm1 = classe (TForm)

 Botão1: TButton;

procedimento Button1Click (Remetente: TObject);privado{Declarações particulares}público{Declarações públicas}fim;

var

 Formulário1: TForm1;


procedimento DllMessage; externo 'SimpleMessageDLL.dll'

implementação


{$ R * .dfm}


procedimento TForm1.Button1Click (Remetente: TObject);início

 DllMessage;

fim;

fim. 

instagram story viewer