DLL? TA E AI? ESTOU NUM DILEMA JA HA ALGUM TEMPO

USUARIO.EXCLUIDOS 02/09/2007 15:45:27
#233767
Boa Tarde Galera, bem estou num dilema ja ha algum tempo e não sei mais como resolver a situação, deixe eu explicar, eu crio um DLL no vb, [txt-color=#ff0000]ACTIVX DLL[/txt-color] na tela principal ou novo projeto. Exemplo

[txt-color=#3333ff]Public Function MSG()[/txt-color]
MsgBox "Teste"
End Function

[txt-color=#ff0000]Name = clsTeste
ProjecName = prjTeste
dai eu crio a DLL:
Make prjTeste.dll[/txt-color]

blz, até ai tudo bem.
agora é que o bicho pega.
vou no VB e crio um novo projeto, dessa vez um do tipo ESTANDART EXE

eu gostaria de estanciar via Modulo ou outra forma essa tal DLL que acabei de criar, e chamar a função MSG que foi criada, mas não consigo de forma alguma, ja vi alguns exemplos ai pela net, mas não dão certo.

gostaria se tiver alguém que ja fez e funcionou, que pudesse me ajudar nessa, desde ja eu agradeço a todos, e fique com Deus

MJAC 02/09/2007 16:37:27
#233769
amigo vc precisa registrar a dll agora. Da um duplo clique nela e ela deve ser registrada ou usa o regsvr32.exe e depois pode intanciá-la em seu programa.
CLEVERTON 02/09/2007 17:11:26
#233772
MJAC
quando o VB Compila ele registra automaticamente.

GIOVANENET
VC marcou a referencia de sua dll (menu project/referencer) ?

mas acho que ficaria algo mais ou menos assim

DIm A as prjTeste.ClsTeste

a.NomedaFuncao
USUARIO.EXCLUIDOS 02/09/2007 17:12:50
#233773
Amigo MJAC, não se trata apenas de instanciar, se fosse somente isso seria fácil, mas como pode ver na minha postagem, o form1 do novo projeto esta vazio. Se eu simplesmente instanciar não vai acontecer nada. Outra coisa é que um duplo click não registra DLL, isso é apenas para executar um programa.

[S34] Muito obrigado pela sua resposta mais não é só isso, Obrigado.[S34]

USUARIO.EXCLUIDOS 02/09/2007 17:20:41
#233776
Amigo, CLEVERTON, eu fiz antes e fiz agora também dessa forma que vc falou, mas não da certo

e registrei a DLL pelo Regsvr32
da eu fui no novo projeto e usei o código:
DIm A as prjTeste.ClsTeste

a.MSG
mas da erro em: DIm A as prjTeste.ClsTeste

a mensagem de erro é: CanÂÂ't find project or library

Continuo na espera, tenho certeza que vcÂÂ's vão me ajudar nessa.

ROBIU 02/09/2007 17:27:44
#233777
Resposta escolhida
Como você quer chamar uma função de dentro da dll, não precisa essa msgbox dentro da função. Você coloca Msg="Texto" e no projeto, usamos msgbox vardll.msg.
Para conseguir fazer sua dll funcionar, pense no Ado. Precisamos fazer referência à dll primeiro. Depois declarar uma váriável como instancia da classe dll. Como a classe passa a ser um objeto, declaramos set var=new...
e finalmente usamos a classe. Fiz um projeto com o exemplo que você citou. Em anexo
USUARIO.EXCLUIDOS 02/09/2007 17:59:20
#233779
1º Registre a Dll
-Clique em Iniciar>Executar digite regsvr32 NomeDaSuaDll e clique no botão Ok (isso irá registrar a sua Dll)

2º Num Módulo.bas do seu projeto:
[txt-color=#3333ff]public minhaDll as new clsTeste[/txt-color]

3º Em qualquer lugar do projeto:
CAL[txt-color=#3333ff]L minhaDll.MSG[/txt-color]

Espero ter ajudado
USUARIO.EXCLUIDOS 02/09/2007 18:02:40
#233780
Obs: Antes de registrar a Dll, coloque-a na pasta system32
MJAC 02/09/2007 21:24:35
#233800
Citação:


MJAC
quando o VB Compila ele registra automaticamente.


Realmente amigo CLEVERTON mas pensei que ele estava usando um exemplo baixado, me confudi.

Citação:


Outra coisa é que um duplo click não registra DLL, isso é apenas para executar um programa.


Na verdade na versão Win98, milênio e 2000 registra sim no XP foi desabilitado mas basta vincular ao Regsvr32 novamente.

O seu problema como já foi dito acima é realmente na referencia
Menu Project > References e selecione prjTeste

No seu programa use:

 
Dim a As prjTeste.clsTeste
Set a = New prjTeste.clsTeste
a.MSG


Esse exemplo execute pelo Group1 e não precisa nem registrar... tenta ai e me fala... abraços...
USUARIO.EXCLUIDOS 03/09/2007 10:17:50
#233830
Ai Galera, vlw mesmo pelas dicas que todos vcÂÂ's postaram, finalmente consegui achar uma forma de acessar a minha DLL. é claro que eu coloquei um exemplo bem chulo do que realmente eu quero fazer, mas baseado no que vcÂÂ's postaram aqui "Eu fiz uns teste com todas as dicas e juntando o quebra cabeça deu certo", agora vou partir pro que eu reamente quero fazer, se na minha idéia final eu tiver algum problema eu volto aqui e pesso a ajuda de vcÂÂ's novamente, a todos eu pesso muito obrigado e fiquem com Deus


se quiserem conhecer o meu trabalho e os programas que eu desenvolvi
acessem o meu site, foi tudo criado no VB 6.0, os programas todos possuem DEMO.

www.giovaneinformatica.com

MJAC 03/09/2007 12:23:46
#233851
amigo encerra o tópico então e tenha muitos sucessos.
Tópico encerrado , respostas não são mais permitidas