Ir para conteúdo
Fórum Script Brasil
  • 0

Utilizando Dll's Em Delphi


Jhonatas araujo

Pergunta

*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...

Editado por Jhonatas araujo
Link para o comentário
Compartilhar em outros sites

9 respostass a esta questão

Posts Recomendados

  • 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 para o comentário
Compartilhar em outros 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...

Editado por Jhonatas araujo
Link para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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.

Editado por Jhonatas araujo
Link para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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.

Editado por Jhonatas araujo
Link para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,9k
×
×
  • Criar Novo...