www.cheatsevolutions.org Mudamos Entrem ^^
 
InícioInício  FAQFAQ  BuscarBuscar  MembrosMembros  Registrar-seRegistrar-se  Conectar-se  

Compartilhe | 
 

 Delphi - Criação de DLL, bem explicado para iniciante

Ver o tópico anterior Ver o tópico seguinte Ir em baixo 
AutorMensagem
Asskiller
Administrador
Administrador
avatar

Masculino Número de Mensagens : 1125
Idade : 25
Localização : NikIty CiTy
Warning :
0 / 1000 / 100

Data de inscrição : 16/03/2008

MensagemAssunto: 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

_________________


Voltar ao Topo Ir em baixo
Ver perfil do usuário http://cheatsevolutions.forumeiros.com
 
Delphi - Criação de DLL, bem explicado para iniciante
Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo 
Página 1 de 1
 Tópicos similares
-
» [PS3/PS4] LittleBigPlanet 3 terá modo de criação mais acessível para jogadores
» recomendação de arma para iniciantes
» [COMPRA]Sites de Aeronaves(FSX) PMDG para iniciante
» Sites para criação de planos de voo
» Qual melhor programa para criar planos de voo para o FSX?

Permissão deste fórum:Você não pode responder aos tópicos neste fórum
Cheats Evolutions :: Programação & Desenvolvimento :: Programaçao :: Delphi / VB-
Ir para: