ID do artigo: 190952 - Última revisão: sexta-feira, 12 de janeiro de 2007 - Revisão: 4.0

Atualização de projeto para usar os novos controles Visual Basic 6.0

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.
Expandir tudo | Recolher tudo

Sintomas

Os seguintes controles não são atualizados automaticamente quando um projeto Visual Basic 5.0 é carregado pelo Visual Basic 6.0:
  • Comctl32.ocx
  • Comct232.ocx
  • Mschart.ocx
Você deve atualizar manualmente o projeto para os novos controles do Visual Basic 6.0:
  • Mscomctl.ocx
  • Mscomct2.ocx
  • Mschrt20.ocx
Observação: O tópico "Atualizando aplicativos que usar o Windows controles comuns" na documentação do Visual Basic afirma incorretamente que esses controles são automaticamente atualizados. Especificamente, as instruções a seguir são em erro:
Quando um aplicativo - criado com o Visual Basic versão 5 e usando esses controles - primeiro é carregado na versão 6 do Visual Basic, uma caixa de diálogo aparecerá informando que uma nova versão está disponível e que os controles podem ser atualizados. Nesse momento, você pode optar por atualizar o projeto para os novos controles ou continuar a usar versões anteriores do controle.

Causa

Esse comportamento é por design. Os novos controles não forem compatível com versões mais antigas e, de acordo com as regras de COM, receberam novos nomes de arquivo e novos GUIDs. Isso impede que seu aplicativo de quebrar aplicativos existentes que usam os controles mais antigos. Como os novos controles têm novos nomes e GUIDs, eles também têm Typelibs novo. Quando você carrega um projeto Visual Basic, ele verifica a versão de Typelib. No entanto, o Visual Basic não sabe que os controles foram atualizados porque Typelib para novos controles tem um GUID diferente que Typelib para os controles antigos.

Resolução

Para atualizar um projeto para a versão mais recente, atualizar manualmente seu projeto e dos arquivos. Para fazer isso, execute as seguintes etapas:
  1. Abra o arquivo .vbp em um editor de texto, como o bloco de notas e alterar as linhas que fazem referência a versão antiga do .ocx à seguinte:
          Object={831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.0#0; MSCOMCTL.OCX
          Object={86CF1D34-0C5F-11D2-A9FC-0000F8754DA1}#2.0#0; MSCOMCT2.OCX
          Object={65E121D4-0C60-11D2-A9FC-0000F8754DA1}#2.0#0; MSCHRT20.OCX
    
    					
  2. Salve e feche o arquivo .vbp.
  3. Abrir qualquer arquivo .frm (ou arquivo .CTL) que usa um desses controles em um editor de texto e alterar as linhas que fazem referência a versão antiga do .ocx à seguinte:
        Object = "{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.0#0"; "MSCOMCTL.OCX"
        Object = "{86CF1D34-0C5F-11D2-A9FC-0000F8754DA1}#2.0#0"; "MSCOMCT2.OCX"
        Object = "{65E121D4-0C60-11D2-A9FC-0000F8754DA1}#2.0#0"; "MSCHRT20.OCX"
    
    					
  4. Altere todo texto que faz referência as bibliotecas antigas para os novos nomes da biblioteca. Você precisará substituir ComCtlLib, Comctl2 e MSChartLib com MSComCtlLib, MSComCtl2 e MSChart20Lib. Por exemplo, alterar:
           ComctlLib.ImageList
    
       To:
    
           MSComctlLib.ImageList
    
    					
  5. Salve e feche o arquivo. Quando você abre o projeto no Visual Basic 6.0, ele usará os novos controles Mscomctl.ocx, Mscomct2.ocx ou Mschrt20.ocx.
anotações
  • importante O backup antes de editar sua .vbp, .frm ou .CTL arquivos, deve ser feito todos os arquivos no seu projeto.
  • Enquanto os objetos listados na etapa 1 e 2 são muito semelhantes, eles não são idênticos e a atualização não funcionarão corretamente se cada não é copiada exatamente para o arquivo correto.
  • Se você receber uma mensagem informando que o cabeçalho é corrompido quando você tenta carregar o projeto, você provavelmente fez um erro de cópia. Vá para o backup e repita o processo.
  • Se preferir continuar usando as versões mais antigas desses controles, Comctl32.ocx e Comct232.ocx estão incluídos no Visual Basic 6.0 produto CD-ROM no diretório \OS\System. Mschart32.ocx reside no diretório \Common\Tools\VB\Controls.

A informação contida neste artigo aplica-se a:
  • Microsoft Visual Basic 6.0 Learning Edition
  • Microsoft Visual Basic 6.0 Professional Edition
  • Microsoft Visual Basic Enterprise Edition for Windows 6.0
Palavras-chave: 
kbmt kbcomctrls kbprb KB190952 KbMtpt
Tradução automáticaTradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 190952  (http://support.microsoft.com/kb/190952/en-us/ )