REGISTRO DE DLL/OCX NO WINDOWS 7/8 - SEJA FELIZ

 Tópico anterior Próximo tópico Novo tópico

REGISTRO DE DLL/OCX NO WINDOWS 7/8 - SEJA FELIZ

VB / VBA

 Compartilhe  Compartilhe  Compartilhe
#424820 - 14/06/2013 19:06:13

LEAO10
BRASILIA
Cadast. em:Agosto/2009


Ol Vbmanacos,

Este tpico diferente aos que abri e que recebi tanta ajuda...

No VB6, j tive muitos problemas com registro de dll/ocx no Windows 7, imagina no 8... Entre vrios tpicos aqui, vi alguns que relatavam que no 7 tem que registrar dll diferente, 1001 solues diferentes e desgastantes...

Descobri que, se a dll, ocxs e afins estiverem no mesmo local que o arquivo EXE, elas no precisam ser registradas!!! Pelo menos em 2 testes que fiz, no 7 e no Windows 8, no precisaram...

Ento, a partir de agora, coloque o inno para copiar as DLLs do seu projeto no mesmo caminho do .exe, e seja feliz!

Se algum descobriu que no bem assim, favor relatar.

Todos respiramos o mesmo ar, portanto devemos ter todos a mesma chance (Ayrton Senna)

#424830 - 14/06/2013 23:24:09

EPISCOPAL
VARZEA GRANDE
Cadast. em:Maio/2009


Valeu pela dica ... ate abri um topico sobre dll e ocx ...... achei legal o que vc descobriuuu .....

vou fazer uns teste aqui eaiii volto aqui ....

____________________________________________________________________
Episcopal Studios


#424832 - 14/06/2013 23:41:01

EPISCOPAL
VARZEA GRANDE
Cadast. em:Maio/2009


Bom aqui aconteceu os seguinte no win8 interprise ... login como administrador

Eu abri o vb6, standard EXE .... fui em componentes e a OCX no tava na lista ... ai eu fui no boto procurar e abrir Ocx .... simplemente o ele apareceu na listagem e ainda inseriu na caixa de ferramenta ....

O que aconteceu??? o win8 deve ter registrado o OCX e o vb6 lanou ele na caixa ferramenta .... s pode ser


PRA QUEM FALOU DE IMCOMPATIBILIDADE .... ESTA PODE SER UMA SAIDA ...... ALELUIIIIA ....

____________________________________________________________________
Episcopal Studios


#424833 - 14/06/2013 23:46:39

EPISCOPAL
VARZEA GRANDE
Cadast. em:Maio/2009


Outro teste .... Leo10

Sua afirmativa esta correta no meu teste aqui .... eu usei o ocx na mesma pasta do EXE e rodou perfeitamente ..... conforme voce disse .....

PESSOAL DA MODERAO ...... destaca o topico ai vai!!!!!

____________________________________________________________________
Episcopal Studios


#424835 - 15/06/2013 08:14:42

OCELOT
SOROCABA
Cadast. em:Março/2012


Estava duvidando muito que isto funcionasse com componentes COM, ento testei aqui e no funcionou. Criei dois projetos no VB6, um EXE e uma DLL, no Exe coloquei apenas um Form com um boto que chama um mtodo da minha DLL. Compilei e copiei para um PC com Windows 8 que nunca foi instalado nenhum programa feito em VB6 e no funcionou. O Form abre mas quando  clico no boto ocorre o que eu esperava, um erro do tipo []ActiveX component can[]t create object[]. S no testei uma OCX pois por algum motivo bizarro o VB6 que peguei pra testar trava quando tempo criar ela.

Tem um detalhe ai, no VB5/6 quando voc vai adicionar referencia ou componentes na toolbox e manda procurar o DLL ou OCX porque ela no est na lista o prprio VB registra ela no PC.

DLLs que se usa com o []Declare Sub/Function[] funcionam desta forma, simplesmente copiando para a pasta do programa, porm DLLs COM precisam ser registradas para serem usadas por um programa feito em VB5/6 pois elas funcionam de um jeito diferente, o seu programa feito em VB no sabe qual o nome  da DLL que ele precisa usar, quando voc tenta instanciar uma classe que est em uma DLL que o  VB vai olhar nas informaes do registro da dll para saber qual ela e ai sim carregar ela, independente de onde ela estiver no PC.

O registro de DLLs COM na verdade no registra s o arquivo, mas tambm todas as classes que esta DLL tem para que os programas do tipo dos feitos com o VB6 possam saber como usar ela.



#424836 - 15/06/2013 10:31:17

LEAO10
BRASILIA
Cadast. em:Agosto/2009


OCELOT,

Por segurana, eu no estou tirando as linhas de registro de DLL do inno setup, creio que no faz mal tentar registrar, mas desde que adotei esta soluo, nunca mais tive problemas, e olha que meu projeto tem muita DLL, OCX...

Resolvi um problema um problema com DLL bsica, foi um erro referente a dll do DAO, que dava erro ao acessar o banco de dados, depois que coloquei desta forma,  nunca mais tive problemas.

Talvez s funciona se combinar registro normal de DLL com as DLL no caminho do .EXE

Eu no sei se a soluo definitiva, mas que est me ajudando demais, est... Acredito que pode ajudar outros tambm!

Todos respiramos o mesmo ar, portanto devemos ter todos a mesma chance (Ayrton Senna)

#424837 - 15/06/2013 10:38:23

EPISCOPAL
VARZEA GRANDE
Cadast. em:Maio/2009


Ocelot verdade que com DLL no funciona ..... mas OCX funciona perfeitamente .... inclusive se a ocx no estiver registrada, depois de rodar o EXE parece que o win8 registra ela automaticamente depois de executar o programa, pois eu abri um novo projeto e vi que a ocx apareceu na lista de componentes logo apos a execuo do EXE que tinha ela como referencia

concluso: OCX funciona ate aqui ......... DLL no funcionou



Citação:
Tem um detalhe ai, no VB5/6 quando voc vai adicionar referencia ou componentes na toolbox e manda procurar o DLL ou OCX porque ela no est na lista o prprio VB registra ela no PC


com relao a isso eu no sabiaaaa

____________________________________________________________________
Episcopal Studios


#424838 - 15/06/2013 10:55:08

LEAO10
BRASILIA
Cadast. em:Agosto/2009


WOLFFIRE,

Uma questo no precisar registrar a DLL, outra questo erro de DLL.

A ocx no precisa registrar, a DLL precisa, mas os erros com DLL que tive foram solucionados assim...

Ento, tratando-se da questo soluo de erro, acho que t valendo...

Se esta soluo for 100% vlida, vida longa ao Visual Basic 6!

Todos respiramos o mesmo ar, portanto devemos ter todos a mesma chance (Ayrton Senna)

#424844 - 15/06/2013 21:02:29

RICARDO_RAPA
TERESINA
Cadast. em:Dezembro/2003


Nunca tive problema com registro de dll no para o win7 e nem Win8 utilizo o inno.

grato

Ricardo Alexandre

[]Sei que parecem idiotas as rotas que eu fao. Mas tento traa-las eu mesmo[]


#424975 - 19/06/2013 11:16:31

OCELOT
SOROCABA
Cadast. em:Março/2012


OCX tambm precisa registrar. OCX a mesma coisa que uma dll, s a extenso que muda.

Fiz at um teste aqui, consegui arrumar um VB aqui, criei um projeto Exe e um ActiveX Control, coloquei apenas um UserControl no ocx, e adicionei ele no form do exe, compilei e copiei os dois arquivos para um Windows 8 que nunca rodou nenhum programa feito em VB.

Quando tento rodar ele diz que o componente ou uma de suas dependncias no est corretamente registrado e no abre.

Quem conseguiu fazer funcionar provavelmente j tinha a OCX registrada no PC em outra pasta, onde ele vai simplesmente ignorar o arquivo que est na mesma pasta do Exe, ou ento quem fez a instalao e colocou as dlls/ocx na pasta do programa o prprio instalador registrou elas, o que nesse caso funciona, mas no s copiar, copiar e registrar ainda, nesse caso no importa onde voc coloca os arquivos, o importante o registro, salvo o caso do sistema operacional ser de 64 bits, nesse caso os arquivos no podem estar na pasta System32 ou no Arquivos de Programas, precisando estar na SysWOW64 e Arquivos de Programas (x86) respectivamente.

Isso de apenas copiar e no registrar simplesmente no faz sentido quando se trata de componentes COM, pelo menos quando se trata de VB



#424992 - 19/06/2013 18:53:16

EPISCOPAL
VARZEA GRANDE
Cadast. em:Maio/2009


Citação:
Quem conseguiu fazer funcionar provavelmente j tinha a OCX registrada no PC em outra pasta


Esta afirmao no est correta ..... pois comigo funcionou .... o unico porem que eu estava logado como administrador


Citação:
Tem um detalhe ai, no VB5/6 quando voc vai adicionar referencia ou componentes na toolbox e manda procurar o DLL ou OCX porque ela no est na lista o prprio VB registra ela no PC


Bom ... isto comigo ja no deu certo ... o vb6 e XP so abre se estiver registrada .... mas no win8 deu certo

____________________________________________________________________
Episcopal Studios


 Tópico anterior Próximo tópico Novo tópico


Tópico encerrado, respostas não sao permitidas
Encerrado por LEAO10 em 21/06/2013 11:28:25