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. |
![]() |
Desafios, Exercícios e Algoritmos Resolvidos de Delphi |
Veja mais Dicas e truques de Delphi |
Dicas e truques de outras linguagens |
Python - Como testar se um ponto está dentro de um círculo em Python - Desenvolvimento de Games com Python |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |