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

Função Da Dll


Denis Bittencourt Muniz

Pergunta

Olá gente!

Preciso fazer o seguinte:

Em uma DLL que estou fazendo, preciso que a função reconheça automáticamente em que formulário foi declarado, resumindo: O usuário não vai ter que precisar digitar o `handle`(código que cada janela tem no Windows) como o que não acontece com as API, que, o usuário precisa digitar o `handle`, ou seja, em que janela aquela API vai atuar...

Falow!!!!!!!!!

Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0

Não entendi bem pra que você precisa disto, mas bastaria na sua função passar automaticamente o Handle da janala ( Me.hWnd ) para a função, asssim o usuario não precisa digitar nada , mesmo porque seria dificil ele saber qual o Handle da janela.

Link para o comentário
Compartilhar em outros sites

  • 0

O propósito de uma DLL é ser uma biblioteca o mais independente possível da aplicação, portanto isso não é realmente viável. O ideal seria mesmo passar o handle da janela como um parâmetro de cada função (como o Décio sugeriu), ou declarar um atributo (ou propriedade) público que armazenaria o handle da janela e seria utilizado por todas as funções da DLL. Sacou? wink.gif

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0
Mas Graymalkin, como assim?

Posta um exemplo ai cara! Não sei criara propriedades!

É como uma variável pública (aliás, é isso que é um atributo público), que você declara na classe:

public HandleJanela as long
Daí, o objeto da sua DLL vai ter esse atributo:
dim obj as new SuaClasse

obj.HandleJanela = Me.Hwnd

Note que isso *não* é uma propriedade, mas funciona igual a uma (com exceção de que você não tem controle sobre o que vai ser colocado e obtido a partir do atributo).

Dessa maneira, todas as funções dentro da classe, sempre que fosse necessário saber a janela, requisitariam o valor de HandleJanela para tal.

Sacou? wink.gif

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

Cara não deu certo...

dá erro quando eu tento compilar o código. Dá o seguinte erro no Me.hwnd(diz que não existe a propriedade ou metodo)

Ae Graymalkin da pra você manda um projeto de exemplo no meu E-Mail?

Link para o comentário
Compartilhar em outros sites

  • 0
Cara não deu certo...

dá erro quando eu tento compilar o código. Dá o seguinte erro no Me.hwnd(diz que não existe a propriedade ou metodo)

Ae Graymalkin da pra você manda um projeto de exemplo no meu E-Mail?

Cara, o Me.Hwnd é do form. Você não vai colocar isso na sua classe e sim no form. Vou ver se preparo um exemplo pra ti.

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

Pronto, já está disponível aqui: http://www.gs.kitbr.com/stuff/ExemploDLLForm.zip

Não utilizei o Handle porque dentro do VB mesmo ele quase não tem utilidade se você não utilizar funções da API, por isso criei um atributo chamado Janela que tem uma referência ao Form. E criei também um método para mudar o caption do form, como exemplo. Compile novamente ou registre a DLL antes de abrir o projeto.

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

valeu Graymalkin!

Era isso mesmo... o único erro que deu quando fui tentar a fazer a minha própria classe é que usei o tipo LONG e não OBJECT...

O esquema pelo que eu entendi você cria uma variavel publica(que seria propriedade da classe) e depois no projeto você coloca o valor da propriedade o formulário alvo!

valeu mesmo!

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