Thomlima 0 Denunciar post Postado Setembro 19, 2005 Pessoal é o seguinte decidi trabalhar com dll será q alguém poderia me dar uma ajuda de como faze-la? Valeu Compartilhar este post Link para o post Compartilhar em outros sites
Pezzin 0 Denunciar post Postado Setembro 20, 2005 Você pode, por exemplo, criar uma DLL em Delphi com um conjunto de funções e utilizá-la em aplicativos desenvolvidos em C++ ou Visual Basic, por exemplo. Agora, vamos começar criando uma DLL:Selecione o item New do Menu File, para exibir a caixa de diálogo New Items. Agora, selecione o item DLL e clique em OK, para gerar o código principal da DLL, que se apresenta a seguir: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. } usesSysUtils, Classes;beginend.Em muitas situações, inclusive esta, o arquivo DELPHIMM.DLL deve ser distribuído junto à sua aplicação. Uma outra observação muito importante, para que você possa escrever suas DLLs, você deve ter conhecimentos na Linguagem Object Pascal.Vamos continuar criando nossa DLL, pois é ela que iremos usar mais para frente. Apenas como exemplificação, vamos criar uma função que receba como parâmetros dois números reais e retorne o maior deles.Function Max (a b : double ) : double; Export; stdcall;beginIf (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.Após serem feitas estas alterações e salvar o projeto com o nome MAXDLL, nossa DLL ficará assim: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. } usesSysUtils,Classes;function Max(a, b : double):double:expert:stdcall:beginif (a > b) then result:= a else result := b;end; exportsMax index 1;beginend. Você pode compilar uma DLL, assim como a um projeto no Delphi, e distribuir livremente.PS: 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.Mais à frente, você perceberá que uma DLL pode usar formulários e objetos definidos em outras unidades. Iremos, agora, chamar uma DLL, a partir de outra aplicação.Neste exemplo que iremos montar, iremos usar: um formulário, duas caixas de texto (os quais o usuário irá digitar dois números reais), um botão de comando.unit usadll; interface usesWindows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; typeTForm1 = class(TForm)Label1: TLabel;Label2: TLabel;Button1: TButton;Edit1: TEdit;Edit2: TEdit;procedure Button1Click(Sender: TObject);private{ Private declarations }public{ Public declarations }end;function Max(a, b : double):double;stdcall; varForm1: TForm1; implementation {$R *.DFM} function Max(a, b : double):double;external 'MaxDLL';procedure TForm1.Button1Click(Sender: TObject);varx, y, resultado : double;beginx := StrToFloat(Edit1.Text);y := StrToFloat(Edit2.Text);resultado := Max(x,y);ShowMessage('Valor Máximo ' +FloatToStr(resultado));end; end.PS: A função Max está declarada na seção interface e implementada na seção implementation, ou seja, a função está implementada em uma DLL. Compartilhar este post Link para o post Compartilhar em outros sites
Thomlima 0 Denunciar post Postado Setembro 20, 2005 Valeu pela explicação amigo, mas você sabe me dizer se existem apostilas e coisas assim para poder ter mais noções de uso e de como fazer dll's... Compartilhar este post Link para o post Compartilhar em outros sites