CRIAR DLL, ME AJUDEM

USUARIO.EXCLUIDOS 05/06/2007 13:44:36
#219836
Galera é o seguinte:
Como faço uma dll que o procedimento seria tipo quando a data fosse maior que 05/06/2007 me enviasse uma msgbox e depois referenciar na minha aplicação e fazer com que ela funcionasse que o meu primeiro form carregasse?
Se alguem poder me ajudar eu agradeço
Obrigado!
USUARIO.EXCLUIDOS 06/06/2007 22:18:05
#220153
Resposta escolhida
Puxa amigo ... pediu um programa inteiro !!!
Este tipo de configuração é aplicado para otimizar reaproveitamento de código por que outras aplicações do micro (ou da rede COM+/MTS) poderiam usufluir desta funcionalidade, porém tem o inconveniente de deixar o processamento mais lento.
Para este tipo de aplicação .Net é melhor pois vc terá acesso a uma particularidade chamada Herança que ajuda pacas no desenvolvimento.

Mas não é este o caso.

Bem, sou contra dar o peixe ... prefiro ensinar a pescar.

1- Inicialmente criamos um projeto do tipo DLL no VB (CDateAlert.VBP)
2- Neste Projeto acrescentamos um Módulo de Classe (clsDateAlert.cls)

Obs: Dentro do nosso contexto teríamos supostamente 2 maneiras de trabalhar ... utilizando Property Get/Let para gerenciar e consultar um valor do componente ou senão simplesmente criando Function forneceria/atribuiria a data desejada.

Property Get/Let tem o objetivo de criar uma interface com o user de forma que ele não tenha controle do processamento da dll apenas de valores (propriedades), afinal ela fica disponibilizada para TODAS as aplicações em várias linguagens de programação.

Function é mais utilizada para componentes COM+/MTS no qual reaproveitamento de código é o primordial, portanto não se precisa esconder processos que vc deseja justamente que outros sistemas utilizem para economizar tempo de desenvolvimento/manutenção e eliminar erros de forma escalonada, pois se uma dll erra todas aplicações dependentes também falharão (Em ambos os casos, mas no 2º método fica mais claro como ajustar).

Optemos pela 2ê linha por que a codificação fica menor.

3- Simplesmente incluiremos uma Public Function GetSysDate no nosso módulo de classe.

Public Function GetSysDate() as Date
GetSysDate = Date
MsgBox "A data do sistema é alguma"

End Function



Obs: Neste ponto suponho que saiba trabalhar e esteja habituado com Módulos de Classes ... OOP (Orientação a Objeto) seria uma ampliação dos melhores conceitos de programação reunidos.

4- No VB iremos ao menu File e compilaremos a DLL com o nome CDateAlert.DLL (Guarde o caminho para acessá-la posteriormente)

Obs: 20% do trabalho concluído.


Tendo nosso componente pronto, podemos acrescentá-lo a qualquer linguagem de programação que aceite tecnologia MS COM (ASP, VB, C...)

Neste ponto imaginamos que vc tenha conhecimento VB, criar projetos e referenciar componentes (dlls)

1- Com nosso projeto aberto acessaremos o menu Project/References e se abrirá uma janela References, nela localize CDateAlert.DLL (Eu avisei para guardar o caminho)

2- Agora no Form Load do VB é mais fácil postar o código:

Private Sub Form_Load()
Dim objCDateAlert As CDateAlert.clsDateAlert
Set objCDateAlert = New CDateAlert.clsDateAlert

'Esta linha mostra a msgbox
objCDateAlert.GetSysDate

'Variáveis do tipo objeto SEMPRE precisam ser destruídas explicitamente pois a linguagem VB não faz isto por nós
Set objCDateAlert = Nothing

End Sub


O código deve funcionar:
Mas lembre-se, este componente não pode funcionar num servidor COM+ pois se o cliente rodar o código a msgbox vai aparecer lá e provavelmente não haverá ninguem para dar OK ... trava o sistema

COM+/MTS é um outro post umas 10 vezes maior que este. é a ampliação desta tecnologia para processamento de componentes que levarão informações para ambientes heterogêneos tal qual um DOC bancário, inicia na WEB do banco 1, vai aos MainFraimes deste banco ... volta a WEB e encontrar o Banco 2 que faz todas verificações e retorna se tem saldo ou não ... se ocorrer algum erro neste processo estará lá o MTS para nos salvar.

USUARIO.EXCLUIDOS 07/06/2007 12:11:54
#220182
EMERSON_TADEU eu gostei dessa sua explicacao, agora queria que vc me ensinasse uma coisa... Vamos imaginar que eu ja fiz minha dll e tudo esta funcionando. a minha dll o contudo dela e para que guarde um nome Exemplo nome da Empresa entao toda vez que o primeiro form da minha aplicacao carregar vai carregar esse nome e utilizarei em toda minha aplicacao. agora eu queria fazer o seguinte depois que minha aplicacao tivesse feita eu mandasse para o cliente apenas minha dll, mais para isso o programa tinha que entender que a nova dll ou seja a dll que enviei e que vou substituir e que vai valer ou seja o programa deveria desreistrar a antiga e registra a nova como faço isso?
USUARIO.EXCLUIDOS 07/06/2007 17:40:33
#220209
regsvr32 /u CaminhoDllAntiga (Retira o Registro antigo)

Logo na Sequencia:

regsvr32 CaminhoDllNova
USUARIO.EXCLUIDOS 07/06/2007 23:36:06
#220254
Ok Emerson Obrigado pela Ajuda
USUARIO.EXCLUIDOS 08/06/2007 11:45:11
#220340
hahaha ...
Comentários de quem ficou desanimadissimo !!!

De fato demorei alguns anos para entender este conceito, duvido que se vc não saiba somente com isto tenha conseguido.

Por favor, tente fazer ... vai ocorrer erros 1000, então vc volta aqui e posta os problemas.

Não que eu seja o baonzão e vc não saiba nada, mas o assunto é complexo por natureza !
Tópico encerrado , respostas não são mais permitidas