Jump to content
Fórum Script Brasil
  • 0

Utilizando Dll's Em Delphi


Jhonatas araujo

Question

*DLL*

Gostária de Criar Funtion, Procedure em Dll's e Carregar em Meu Software...

//Criar a Linguagem do Meu Programa por Dll// etc...

E Carrega-la pela Minha Application!!!

Até que ponto eu Posso utilizar uma DLL {Dynamic Link Library} ([bibliotécas]);

Teria como eu Utilizar Uma Dll Como Aplicativo ServerSocket ?//? Como //

Vlw...

Edited by Jhonatas araujo
Link to comment
Share on other sites

9 answers to this question

Recommended Posts

  • 0

Oi Jhonatas ... procure ler mais a respeito do delphi ( apostilas, tutoriais, biblia do delphi, artigos ..etc ) para poder ficar mais por dentro do assunto... no forum e na internet vai achar o material necessario

quanto a Dlls já postei para voce

http://scriptbrasil.com.br/forum/index.php...st&p=474343

abraço

Link to comment
Share on other sites

  • 0

Ai Jhonas Vlw...

Eu só postei Novamente por que o Micheus Recomendou não Criar em um Tópico Varios Assuntos Diferentes//

Fica Meio Ruin de As Pessoas Responderem pois: é Varios Assuntos... etc ...

Mais Tipow, beleza os Exemplos que você Mostrou, Alguns eu já Tinha Visto e Outros Não!!!

Mais Eu Tentei Tentei até que Consegui Descobri Como Criar Procedure TRegistry em Dll e Chamar pelo Aplicativo...

{Muito Simples}

....

Mais a Duvida mesmo é o Seguinte:

Teria como eu Utilizar Uma Dll Como Aplicativo ServerSocket ?//? Como //
and
//Como Criar a Linguagem do Meu Programa por uma Dll// etc...

E Carrega-la pela Minha Application!!!
A Respeito de:
Teria como eu Utilizar Uma Dll Como Aplicativo ServerSocket ?//? Como //

Acho que não né/?// por que como Adicionaria o ServerSocket, e tall ... E é uma DLL{Bibliotéca}, não um Executavel!!!

Mais só perguntei né!!! Vai Saber ... hehe

E Não Tive Resultado!!! por Isso Postei Novamete... //

Vlw...

Abraço...

Edited by Jhonatas araujo
Link to comment
Share on other sites

  • 0

[O que é uma Dll ?]

DLL é um acrônimo para Dnamic Link Library ( Biblioteca de Linkagem Dinamica). Dlls são funcionalmente equivalentes a units, pois representam um coleção de fuções externas ao módulo principal da aplicação. A diferença se encontra no modo através do qual a biblioteca é linkada.

Dlls exportam funções para serem utilizadas por outras Dlls ou aplicações ( importando-as). Nada mais pode ser exportado ou importado atraves do mecanismo de Dlls, a não ser funções e procedimentos.

OBS: Uma Dll não precisa necessariamente ser escrita em delphi. A sua aplicação delphi pode usar Dlls escritas em outras linguagens. As Dlls do windows não são escritas em delphi e voce as usa normalmente.

abraço

Link to comment
Share on other sites

  • 0
A Respeito de:

Teria como eu Utilizar Uma Dll Como Aplicativo ServerSocket ?//? Como //
Acho que não né/?// por que como Adicionaria o ServerSocket, e tall ... E é uma DLL{Bibliotéca}, não um Executavel!!! Mais só perguntei né!!! Vai Saber ... hehe E Não Tive Resultado!!! por Isso Postei Novamete... // Vlw... Abraço...
Opa Tem como sim, adicione um DataModule na sua DLL e coloque os componentes de Socket nele. Para trabalhar com os componentes basta você chamar o DataModule exemplo
DataModule1.idTCPClient1.IOHandler.WriteLn('Hello!! Im Lindsay Lohan');
Voce precisará criar e destruir o DataModule, há varias maneiras, uma gerenciando quando um processo carrega a DLL que seria mais ou menos assim:
procedure DllMain(iReason: Integer);
begin
  case iReason of
  DLL_PROCESS_ATTACH: DataModule1 := TDataModule1.Create(nil);
  DLL_PROCESS_DETACH:
  if Assigned(DataModule1) then
  DataModule1.Free;
  end;
end;

exports
;

begin
  DllProc := @DllMain;
  DllProc(DLL_PROCESS_ATTACH);
Outro é a cada chamada de alguma funcao da DLL voce verificar se o DataModule existe e se não criá-lo.
Function Bla: BOOL; StdCall;
begin
  if DataModule1 = nil then
  DataModule1 := TDataModule1.Create(nil);
end;

Recomendo o gerenciamento de processos...

Como o Jhonnas mencionou, como voce disse ser iniciante, várias coisas ainda vão ser estranhas para voce, onde

a experiência voce vai conseguir com o tempo, estudo e esforço :)

abracos

Link to comment
Share on other sites

  • 0

Ae Churc Pode cre ... Sem Palavras ...

Cara Penssei que Isso Não Era Possivel!!!

E Claro, Estudo e Esforço é a Chave Concerteza!!!

¬¬

E para Executar o ServerSocket Pela *.DLL /?/

Cara e você Saberia me Dizer Como Por Exemplo:

Eu Adiciono um "MainMenu" Ai Coloco 2 Itens {Para Esse Exemplo} //

Ai Deixo por Default Abrir e Fechar ...

Mais Tambem Adiciono 2 Button!!! ai...

Gostária que quando Clicar no button1 os Itens do MainMenu passase para Open e Close ...

E no button2 Retornar a Abrir e Fechar ...

Mais que Chamasse Essa Função/Procedimento Por Uma *.DLL Se Fosse Normal, é Claro que Seria Muito Facil...

Mais Colocar As Ações em uma *.DLL e Utiliza-la - {Essa Ação} Eu não Sei!!! ;)

Vlw...

Abraço.

Edited by Jhonatas araujo
Link to comment
Share on other sites

  • 0

Opa

Se eu entendi bem, tudo o que você precisa fazer é criar funcoes na DLL e exporta-las para o programa

que vai chama-la

exemplo na DLL

function OpenServer(iPort: Integer): BOOL; StdCall;
begin
  with DataModule1.TCPServer1 do
  begin
    Port := iPort;
    Active := True;
  end;
end;

exports

OpenServer;

ai no executavel acima do var da Unit voce tem que importar esta funcao

function OpenServer(iPort: Integer): BOOL; StdCall; external 'nomedadll.dll';

E então quando quiser chamar esta funcao voce faz por exemplo

OpenServer(1010);

Foi somente um exemplo simples, mas é isso ai, claro tem váriass formas e maneiras

mas a mais simples é essa...

neste exemplo o ServerSocket estaria ativo na porta 1010

Lembrando que a DLL precisa ficar na mesma pasta do programa ou em pastas do sistema, como Windows e System\System32

Senao seu programa já inicia com um AccessViolation

a real é, para tudo que voce quer que o executavel execute na DLL voce precisa criar funcoes nela para isso, e exporta-las

e no executavel importar as funcoes para poder chama-las

abraco

Link to comment
Share on other sites

  • 0

Pode cre Ae Churc ... Firmeza //

Mais Tipow Essa de Criar Funções e Procedimentos em DLL e Export {Exportar} para um Executavel e Utilizar Eu Sei...

Mais a parada é o Seguinte eu Tava querendo Criar um Server Socket {Sendo uma *.dll} por Isso perguntei:

Teria como eu Utilizar Uma Dll Como Aplicativo ServerSocket ?//? Como //
Mais Acho que você Intendeu Como Adicionar Um ServerSocket em uma *.DLL , Como o Exemplo que você Menssionou... Mais eu Gostaria de Adicionar e Utilizar na Propria *.DLL por isso que tambem perguntei:
E para Executar o ServerSocket Pela *.DLL /?/
E também Menssionei
Teria como eu Utilizar Uma Dll Como Aplicativo ServerSocket ?//? Como //


Acho que não né/?// por que como Adicionaria o ServerSocket, e tall ... E é uma DLL{Bibliotéca}, não um Executavel!!!

Intendeu ... /

Eu não quero Apenas Adicionar o Server na DLL e Chama-la pela Aplication ...

Mais sim Fazer Dela Como se Fosse o Executavel ... ou seja Executando o ServerSocket Altomaticamente quando a mesma está na Máquina...

Obs: Fazer dela um Verdadeiro Server para o Client {Socket}

Isso que Perguntei se é Possivel!!!

é/?/

Vlw

Abraço.

Edited by Jhonatas araujo
Link to comment
Share on other sites

  • 0

Ahhhhhhhhhhh entendi! haha

não Jhonatass, não é possivel hehe

Um DLL é apenas um complemento, impossivel ela ser executada por si própria, sem que nenhum processo a chame...

de qualquer forma, há como sim fazer um Server em uma DLL sem precisar fazer um executavel seu chama-la...

mas seus tópicos estão um pouco suspeitos rs

pra quem quer ter acesso total aos arquivos do PC, deletar, excluir, renomear...

queria saber se tinha como formatar o PC

e agora quer saber como fazer um Server em uma DLL, ou seja, escondido pro usuário não ver...

humm

:)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152k
    • Total Posts
      651.6k
×
×
  • Create New...