Asskiller Administrador
Número de Mensagens : 1125 Idade : 32 Localização : NikIty CiTy Warning : Data de inscrição : 16/03/2008
| Assunto: Delphi - Criação de DLL, bem explicado para iniciante Seg 24 Mar 2008, 22:43 | |
| Neste tópico vamos aprender a utilizar uma dll, mas oque seria uma dll? DLL ou Dynamic Link Libraries perminte que criemos um conjunto de funções em uma linguagem que possa ser utilizado em outro programa feito em outra linguagem, por exemplo eu crio um dll com uma função escrita em C, e eu utilizo essa dll em um programa feito em delphi, você pode também criar um programa todo dentro de uma dll, com um bom conhecimento de linguagem object pascal, mas não entrarei nisso por enquanto.
Para criar uma dll selecione File>New>Other>DLL Wizard, e será exibido esse código: obs: você pode remover o conteúdo que esta entre chaves.
CODE library Project1; { Important note about DLL memory management: ShareMem must be the first unit in your library's USES clause AND your project's (select Project-View Source) USES clause if your DLL exports any procedures or functions that pass strings as parameters or function results. This applies to all strings passed to and from your DLL--even those that are nested in records and classes. ShareMem is the interface unit to the BORLNDMM.DLL shared memory manager, which must be deployed along with your DLL. To avoid using BORLNDMM.DLL, pass string information using PChar or ShortString parameters. } uses SysUtils, Classes;
{$R *.res}
begin
end.
Vamos inserir a seguinte função que receba como parâmetros dois números reais e retorne o maior deles. CODE function Max(a, b : double):double:expert:stdcall: begin if (a > b) then result:= a else result := b; end;
Export = indica que a função poderá ser chamada por outros aplicativos. Stdcall = permite que aplicativos desenvolvidos em outras linguagens façam chamadas à função.
Apos inserir o código salve nossa dll como MYDLL, nossa dll ficara assim: CODE library MYDLL; uses SysUtils, Classes;
{$R *.res}
Function Max (a, b : double ) : double; Export; stdcall; begin If (a > b) then Result :=a else Result := b; end;
exports max;
begin
end.
Você não pode executar uma DLL pelo Delphi, através do RUN do Menu Run, pois não se trata de uma aplicação e retornara uma mensagem de erro, mas a dll será comilada ^^
Agora iremos montar o programa quer ira chamar a nossa dll. Selecione File>New>Application e o form sera criado, adicione dois edits e um button. Adicione este código depois da seção implementation. CODE Function Max (a b : double ) : double; Export; stdcall;
e adicione o seguinte código no evento onClick do button: CODE function Max(a, b : double):double;external 'MYDLL.dll'; procedure TForm1.Button1Click(Sender: TObject); var x, y, result : double; begin x := StrToFloat(Edit1.Text); y := StrToFloat(Edit2.Text); result := Max(x,y); ShowMessage('Maior Valor:' +FloatToStr(result)); end;
compile e roda a exe.
Esse foi um exemplo muito simples de como criar uma dll, espero q gostem... Vlw pessoal^^ Tuto by mausimag | |
|