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

Dll


Fernando_Ramos

Pergunta

5 respostass a esta questão

Posts Recomendados

  • 0

Bom, utilizando ShareMem, você compartilha a área de memória do seu .exe c/ a sua .dll

A partir daí você tem acesso a qualquer variável de memória tanto do seu .exe quanto da sua .dll. você consegue este acesso através de ponteiros, pois pelas formas normais, você só conseguiria acessar métodos e funções dos quais a dll quiser exportar, porque se ela não exportar, nem isso você tem acesso.

Não sei se deu pra você entender, mas vou te dar um ex prático:

Suponha que em certo momento de execução na sua dll, você deseje passar uma string p/ sua aplicação(.exe); você pode fazer isso facilmente utilizando SendMessage ou PostMessage:

SendMessage({Handle da sua janela} , {Número da msg},Integer(string_na_dll), {LParam(neste caso não utilizado)});

Note que Integer(string_na_dll) nada mais é do que um ponteiro de memória onde seu .exe pode 'enxergar'.

Por outro lado, se você fizer isto c/ dois .exe, não irá funcionar porque eles rodam em espaços de memória distintos e aí você deverá utilizar um SendMessage c/ tipo Copy_Data que é aonde o Windows intervem fazendo uma ponte de comunicação entre o programa A e o programa B.

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,8k
×
×
  • Criar Novo...