Introdução a DLLs no DelphiPrimeira mente temos que entender o que é uma DLL, pode dizer que a DLL nada mais é do que uma
Biblioteca de Ligação Dinâmica, que pode ser chamada por outras aplicações, ou até mesmo por outras
DLLs. Uma DLL contém o seu código (Rotinas) compartilhável, podendo ser acessado por outros programas,
como em nosso exemplo vamos criar uma DLL a partir do delphi, mas podemos usar a mesma DLL em uma
outra aplicação feita em C, C++ e daí por diante, vamos observar abaixo o código de uma DLL, veja como é
simples.
library DLL;
uses
SysUtils,Classes,windows;
procedure Msg;
begin
MessageBox (0,'DLL teste OK','Teste',0);
end;
exports Msg;
begin
end.
Explicando o código acima,Library DLL; Nome dado a DLL (DLL).
Uses SysUtils, Classes, Windows; Bibliotecas usadas.
Procedure Msg
Begin
MessageBox(0,'DLL teste OK','Teste',0);
End;Criamos um procedimento que apenas exibe uma mensagem na tela, como se fosse uma função, que
iremos chamar através de uma aplicação feita no delphi, chamaremos esta função de dentro da DLL.
Exporte Msg;Esta linha é extremamente importante, pois é através dela que iremos exportar as Funções e procedimentos
que queremos compartilhar, se nos tivermos 10 funções dentro da DLL, e exportar só 4, poderíamos usar
somente as 4 exportadas, as outras 6 ficariam disponíveis apenas para acesso local da própria DLL.
CHAMANDO/USANDO UMA DLL APARTIR DO DELPHIPara Chamar uma DLL e uma função dentro da DLL a partir do delphi, é muito simples, como exemplo
vamos pegar a DLL criada acima, vamos chamar a Procedure Msg, ok, para isto teríamos que dizer ao
delphi, qual DLL e qual Rotina dentro desta DLL que queremos utilizar, acima de Implementation adicione
a seguinte linha de comando.
QuoteProcedure Msg; external 'DLL.dll';
A linha de código acima fala para o delphi que vamos usar a Procedure MSG da DLL 'Dll.dll', o parâmetro
external, é o responsável por dizer qual DLL iremos utilizar externamente, ao invés de utilizar procedimentos (Procedure), podemos utilizar Funções (Function) sem problema, já que falamos para o delphi qual DLL e
qual rotina desta DLL iremos utilizar, agora basta chamar a rotina, como exemplo, insira um Botão no Fomr1,
e chame a função normalmente, observe abaixo.
procedure TForm1.Button1Click(Sender: TObject);
begin
Msg;
end;
Moleza né, agora vamos ver todo o código fonte da DLL e da nossa Aplicação.DLLlibrary DLL;
uses
SysUtils,Classes,windows;
procedure Msg;
begin
messagebox(0,'DLL tesdato OK','Teste',0);
end;
exports Msg;
begin
end.
Aplicação.unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
procedure Msg; external 'DLL.dll';
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
Msg;
end;
end.
Bom com os dados acima é fácil de entender e de criar uma DLL, para iniciar a estrutura de uma DLL no
delphi, acesso o Menu File > New > Other > DLL Wizard e de OK
(//http://img148.imageshack.us/img148/5258/clipimage002mk6.jpg)
Pronto já temos a estrutura da DLL montada, agora basta seguir os passos explicados anteriormente e
construir a sua própria DLL com suas rotinas, espero que tenha dado para entender como criar e como
utilizar a DLL a partir delphi.
Obs. Não esqueça de salvar a dll no mesmo diretório do aplicativo.
Para ver o funcionamento na pratica, assista ao vídeo de demonstração.
Download Videohttp://rapidshare.com/files/5192086/Delphi_Dll.rar.html (http://rapidshare.com/files/5192086/Delphi_Dll.rar.html)
By TGA
Oo FODA!!!!!! to ficando loko com estes tutos maneiros

!!!
Obrigado, espero sempre estar ajudando a está bela comunidade.
abraços..
TGA
Ae TGA, agora que tive um tempo li o tutorial e vi o video, tah de parabéns denovo cara, muito bem explicado, deu pra entender certinho, vlws...continua com os tutos ae...
Flws...
e agora como fazemos para editar um comando de uma dll tipo editar uma função sei lá, editar algo em um dll em run-time! como fazemos?