DLL? TA E AI? ESTOU NUM DILEMA JA HA ALGUM TEMPO
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
[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
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.
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
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
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]
[S34] Muito obrigado pela sua resposta mais não é só isso, Obrigado.[S34]
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.
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.
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
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
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
-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
Obs: Antes de registrar a Dll, coloque-a na pasta system32
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...
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
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
amigo encerra o tópico então e tenha muitos sucessos.
Tópico encerrado , respostas não são mais permitidas