Você está aqui: Delphi ::: Dicas & Truques ::: Bilbiotecas Estáticas (obj) e Dinâmicas (DLLs)

Como carregar uma DLL a partir de seus programas Delphi usando Static Loading (carregamento estático)

Quantidade de visualizações: 13544 vezes
Por carregamento estático (Static Loading) entendemos a técnica de se carregar as funções de uma DLL na abertura de nossos programas, ou seja, a DLL é carregada juntamente com nossa aplicação. Para esta demonstração faremos uso da DLL MinhaDLL.dll, criada em uma das dicas nesta mesma seção.

O primeiro passo é saber a assinatura da função contida na DLL e que pretendemos usar em nosso programa Delphi. A DLL MinhaDLL.dll contém uma função Somar() que recebe dois Integer e retorna a soma como um Integer:

function Somar(a, b: Integer): Integer; stdcall;
begin
  Result := a + b; // retorna a soma
end;

O primeiro passo é criar uma unit que nos permitirá informar ao compilador Delphi que a rotina Somar() está localizada externamente. Para isso, crie um novo projeto e adicione uma nova unit com o seguinte conteúdo:

unit MinhaDLL;

interface

function Somar(a, b: Integer): Integer; stdcall;

implementation

// vamos informar ao compilador que a função Somar() está
// localizada externamente e em qual DLL
function Somar(a, b: Integer): Integer; external 'MinhaDLL.dll';

end.

Agora só precisamos adicionar esta unit no formulário a partir do qual pretendemos chamar a função localizada na DLL:

uses MinhaDLL;

E, para chamar a função Somar() só precisamos adicionar o código abaixo no evento Click de um botão:

procedure TForm3.Button1Click(Sender: TObject);
var
  v1, v2, resultado: Integer;
begin
  v1 := 5;
  v2 := 2;
  resultado := Somar(v1, v2);

  // vamos exibir o resultado
  ShowMessage('A soma é: ' + IntToStr(resultado));
end;

Note que, no carregamento estático, se a DLL não puder ser encontrada você verá uma caixa de mensagem semelhante à:

Projet2.exe - Não foi possível localizar componente

Este aplicativo não pôde ser iniciado porque não foi encontrado 
MinhaD.dll. A reinstalação do aplicação pode corrigir o problema.

Mas, esta mensagem de erro só é exibida se executarmos a aplicação fora da IDE do Delphi (experimento feito com Delphi 2009). Lembre-se de que o os aplicativos procuram as DLLs primeiro no diretório local e em seguida nos diretórios Windows, System e System32.

Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009.

Link para compartilhar na Internet ou com seus amigos:

Desafios, Exercícios e Algoritmos Resolvidos de Delphi

Veja mais Dicas e truques de Delphi

Dicas e truques de outras linguagens

E-Books em PDF

E-Book 350 Exercícios Resolvidos de Java - PDF com 500 páginas
Domine lógica de programação e a linguagem Java com o nosso E-Book 350 Exercícios Exercícios de Java, para você estudar onde e quando quiser.

Este e-book contém exercícios resolvidos abrangendo os tópicos: Java básico, matemática e estatística, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book
E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python - PDF com 1.200 páginas
Domine lógica de programação e a linguagem Python com o nosso E-Book 650 Dicas, Truques e Exercícios Exercícios de Python, para você estudar onde e quando quiser.

Este e-book contém dicas, truques e exercícios resolvidos abrangendo os tópicos: Python básico, matemática e estatística, banco de dados, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: C
6º lugar: Delphi
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2025 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 32 usuários muito felizes estudando em nosso site.