Ir ao conteúdo

VB6 no XP


Pulllga

Posts recomendados

Postado

Olá,

Estou programando um software com VB6 em um micro com Windows XP, mas quando compilo o projeto, o executável não funciona em Windows 98, e se abro o projeto em Windows 98, com o VB6, ele compila, mas continua dando erro e nem abre o programa.

Como posso compilar esse meu projeto em Windows XP, com o VB6, de modo que eu consiga executá-lo no Windows 98???

Obrigado desde já.

T+ :D:D:D

Postado

Pulllga, não sei muito, mas já vi um problema parecido.

Se o programa que você está fazendo utiliza banco de dados, aconselho você converter o banco de dados em formato Access 97 ou 2000(não me lembro) e depois veja se consegue rodar no win 98.

Postado

O pior que meu programa não usa banco de dados!!!

Por isso que não sei qual o problema e como resolver!

Se alguém souber como gero um executável para Windows 98 a partir do VB6 instalado no XP, fico muito grato.

valeu :D:D:D

Postado

Experimente criar uma instalação do seu programa e rodá-la no Windows 98. Isso se dá porque o WinXP é diferente do Win98 e consequentemente sua aplicação compilada no WinXP carregará consigo algumas características próprias que não serão aceitas pelo Win98.

Espero ter ajudado.

JAFL

Postado

Eu não compilo o programa em Windows 98 porque dá erro, o mesmo erro quando rode ele com f5 ou compilado em Windows XP!

Mas andei tentando rastrear os erros, e descobri 2, as vezes ele acusa um erro e outras vezes outro erro totalmente diferente!!!

Erro 1:

Ele acusa que o componente telnet (criado por mim), nã pode ser carregado.

Erro 2:

Ele diz que o componente textadiv (text), está recebendo um valor inválido.

No primeiro caso, o componente telnet está na mesma pasta do executável e também já tentei copiá-lo para a pasta system e system32 do Windows 98, e continua dando problema, o arquivo vbp, tem o telnet registrado nos objects.

No segundo erro, ele diz que é problema no componente textadiv, e diz quais linhas, que são duas, a primeira dá num "else" e o segundo numa linha em branco, as duas linhas apontadas estão longe de alguma linha do componente!!!

Alguém tem alguma ideia de compilar este programa em Windows XP ou 98, mas que eu consiga compilar e rodar em Windows 95/98/2000/XP/etc...

Eu por enquanto só testei em Windows XP (rodou) e Windows 98, mas presumo que rodando em 98 pra cima deve rodar normal.

Agradeço a ajuda e fico aguardando mais!

T+ :wacko::wacko::wacko:

Postado

Eu não compilo o programa em Windows 98 porque dá erro, o mesmo erro quando rode ele com f5 ou compilado em Windows XP!

Mas andei tentando rastrear os erros, e descobri 2, as vezes ele acusa um erro e outras vezes outro erro totalmente diferente!!!

Erro 1:

Ele acusa que o componente telnet (criado por mim), nã pode ser carregado.

Erro 2:

Ele diz que o componente textadiv (text), está recebendo um valor inválido.

No primeiro caso, o componente telnet está na mesma pasta do executável e também já tentei copiá-lo para a pasta system e system32 do Windows 98, e continua dando problema, o arquivo vbp, tem o telnet registrado nos objects.

No segundo erro, ele diz que é problema no componente textadiv, e diz quais linhas, que são duas, a primeira dá num "else" e o segundo numa linha em branco, as duas linhas apontadas estão longe de alguma linha do componente!!!

Alguém tem alguma ideia de compilar este programa em Windows XP ou 98, mas que eu consiga compilar e rodar em Windows 95/98/2000/XP/etc...

Eu por enquanto só testei em Windows XP (rodou) e Windows 98, mas presumo que rodando em 98 pra cima deve rodar normal.

Agradeço a ajuda e fico aguardando mais!

T+ :wacko::wacko::wacko:

  • Membro VIP
Postado
Estou programando um software com VB6 em um micro com Windows XP, mas quando compilo o projeto, o executável não funciona em Windows 98, e se abro o projeto em Windows 98, com o VB6, ele compila, mas continua dando erro e nem abre o programa. Como posso compilar esse meu projeto em Windows XP, com o VB6, de modo que eu consiga executá-lo no Windows 98???

Pulllga, não existe segredo nenhum nisso. Eu frequentemente compilo programas em VB6 no WindowsXP, e rodo o executável em máquinas com qualquer outra versão do Windows, desde Windows95 até Windows2000.

Meu palpite é que simplesmente deve estar faltando algum OCX ou DLL que você tem instalado na máquina com WindowsXP (onde você desenvolve e compila), mas não tem na máquina com Windows98 (onde você roda o executável). Neste caso, bastaria ver qual é o OCX ou DLL, e então copiar e registrar na outra máquina.

Mas isso só dá pra saber se eu ver qual é a mensagem de erro: qual é a mensagem que está aparecendo (código e descrição)? Tem como capturar a tela quando aparece o erro do programa no Windows98, e postar aqui pra eu ver?

Vou até chutar a mensagem: "429 - ActiveX can't create object"

Se for essa, tá faltando OCX no seu Windows98. É só ver qual é e copiar/registrar.

:joia:

Postado

Clemente Silva,

Olá, este é o erro que dá quando tento ráda-lo com f5 no ambiente de desenvolvimento:

bjxvbvdkkp.jpg

E quando rodo o executável que gerei no Windows XP dá esse erro:

qnyoyazwkb.jpg

Tudo bem, é como você me disse, mas como registro essa dll?

Porque ela já está na pasta do /windows/system, e mesmo assim não funciona!

E, se eu gero o instalador pelo xp, dá erro ao atualizar as dlls, tem como resolver?

Ou é melhor gerar o installer pelo Windows 98?

Obrigado pela ajuda.

T+ :D:D:D

Postado

OK,

Resolvi o problema de Class Not Registered, registrei a dll manualmente com o regsvr32, mas agora dá esse erro aqui:

djuwjrtsmt.jpg

E agora, o que faço?

E como gero o installer que registre a dll?

Ah, eu também li no site da Microsoft que em alguns casos é necessário instalar o dcom, eu instalei ele e mesmo assim dá erro!

valeu :D:D:D

  • Membro VIP
Postado

Todos esses erros estão relacionados as dependencias do seu projeto, ou seja: componentes que não existem ou não estão registrados na máquina com Windows98 que você está testando.

O mais fácil mesmo seria você criar uma instalação com o "Package and Deployment Wizard", que vem com o próprio VB. Isto vai listar todas as dependencias e criar um pacote para você instalar em outras máquinas.

Se isso não funcionar... então você vai ter que "caçar" qual é a dependência que está causando o problema.

Só assim você vai poder concluir qual o motivo do problema: se é simplesmente um componente que não está sendo registrado, ou então se o problema é incompatibilidade com versões anteriores do Windows.

Para isso, você teria que abrir o seu projeto no Windows XP (que é onde está funcionando) para listar todos os componentes (menu "Project > Components") e referências (menu "Project > References") e assim saber quais são os OCX/DLL que você está usando no seu projeto.

Nas janelas "Components" e "References", basta clicar nos itens que estão habilitados para ver o caminho onde estão os arquivos.

Faça uma busca no Google para ver se encontra alguma informação sobre eles, principalmente sobre compatibilidade com versões do Windows.

Se todos eles forem compatíveis com o Windows98, então continue a "caça": crie uma pasta apenas para esses arquivos, e vá copiando para ela os arquivos que encontrar, um por um.

Depois que terminar, copie e registre todos esses arquivos, UM por UM, para a máquina com Windows98, nas mesmas pastas onde os encontrou no XP. Por exemplo: a grande maioria desses arquivos vai estar na pasta SYSTEM32 do WindowsXP, portanto é só copiar para a pasta SYSTEM do Windows98.

Só complementando, a grande maioria desses problemas ocorrem com OCX/DLL freeware, sem documentação, suporte nem garantia alguma.

Ou então, o componente necessita algum tipo de licença individual por computador para rodar. Muitos destes componentes não emitem mensagem nenhuma avisando a necessidade da licença: eles simplesmente travam o programa fazendo o Windows disparar um GPF.

Bom, isso é o máximo que eu posso fazer.

Boa sorte :)

Postado

Olá Clemente,

Consegui me adiantar um pouco sobre os erros.

Tentei abrir form por form independente de abrir o projeto, 3 forms deram erro ao carregar certos componentes:

Componente telnet, que foi criado pelo cara que excreveu o código original e somente utilizado por ele.

Componente Winsock, o que vem com o windows e já existe, vem instalado no windows 98.

Componente MSComm, que eu e ele utilizamos.

O componente MSComm e Winsock funcionam normalmente, eles só acusam erro se eu abrir os forms individualmente no VB, se eu abrir o projeto, nenhum dá erro. Por isso, abri o projeto vbp no bloco de notas e reparei que esses dois objetos estão registrados lá. Fiz o mesmo com os forms, e notei que está tudo correto, os objetos também estão registrados nos forms.

Um detalhe, esses três forms que citei, dão erro ao abrir, mesmo no Windows XP, mas não quando abro o projeto, somente quando abro eles individualmente!

O componente telnet, apesar de não ser nativo da microsoft e não ter sido criado por mim, funciona no XP e no 98, e também está registrado corretamente no form e no vbp!

Já tentei a sua ideia, copiar as ocx para dentro das respectivas pastas do Windows 98, mas não adiantou!

Também já tentei registrar essas ocx no Windows com o regsvr32, foram registradas no Windows com sucesso, mas continua dando erro!!!

Eu já tentei criar o instalador com o assistente que vem com o VB, mas dá erro ao atualizar a dll oleaut32.dll, ai sempre tenho que restaurar a antigo, que por sinal, tem +/- 900kb, enaquanto a que o windows instala tem +/- 400kb.

Presumo que se, eu conseguir abrir esses forms independentemente do projeto, no Windows XP, ele rode normalmente no 98, mas agora esse é o problema, se as ocx estão registradas nos forms, no projeto, no Windows e foram copiadas para as respectivas pastas, como resolver esse problema???

Desde já, obrigado pela ajuda, fico aguardando algum retorno.

T+ :D:D:D

Postado

Olá Clemente,

Obrigado por toda ajuda, mas resolvi o problema!

A questão dos forms abertos individualmente darem erro é fácil.

Quando se faz um projeto, há uma ordem para se carregar os forms, mas quando não há projeto, ou abre-se somente um form que tenha eventos no OnLoad, dá erro, mas só se esse form possuir eventos que referenciem um componente que ainda não foi carregado, porque teoricamente, os componentes só serão carregados após o form carregar, se o form ainda está carregando, os componentes ainda não existem!

Mas o problema era o seguinte, uma imagem em um form, era em formato jpg, eu converti para bmp e funcionou!!!

Muito ***** isso, não sei porque dava erro, abri a imagem em jpg no Paint do Windows 98 e não deu nada!!!

Mas tudo bem, agora é só concluir o código, muito obrigado pela ajuda.

T+ :D:D:D

  • Membro VIP
Postado

Putz, todos esses problemas por causa de uma simples imagem em um form :D

E o pior é que parecia ser coisa "grave", pelo tipo de mensagem que aparecia. Bom, o importante é que o problema foi resolvido :)

Valeu!

:joia:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!