CORRECÇÃO: Execução do Windows lado a lado não há suporte para controles ActiveX 6.0 do Visual Basic

Traduções deste artigo Traduções deste artigo
ID do artigo: 828629 - Exibir os produtos aos quais esse artigo se aplica.
Expandir tudo | Recolher tudo

Sintomas

Com o Microsoft Windows XP e versões posteriores, você pode executar os módulos DLL de COM (Component Object Model) no modo lado a lado (SxS). Com SxS, versões diferentes de uma DLL de COM para coexistir no mesmo ambiente de computador sem conflito. Esse comportamento ocorre usando os arquivos .manifest que especificam como um programa pode vincular a uma DLL COM determinado. Os controles ActiveX do Microsoft Visual Basic 6.0 são essencialmente os módulos DLL COM extensões de nome de arquivo .ocx. Se você tentar configurar esses módulos para operação lado a lado no Windows XP, você receber a seguinte mensagem de erro:

Erro de tempo de execução '336' componente não corretamente registrado.

Causa

Esse problema ocorre porque tempos de execução do Windows e o Visual Basic não suportam SxS Configurar execução de controles ActiveX 6.0 do Visual Basic.

Resolução

Para resolver esse problema totalmente você deve ter os dois procedimentos a seguir:
  • A versão do runtime do Visual Basic está incluído no Visual Basic 6 Service Pack 6 (SP6)
  • Windows XP Service Pack 2 (SP2)
Para obter informações adicionais sobre como obter o tempo de execução mais recente do Visual Basic, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
290887VBRun60sp6.exe instala arquivos de tempo de execução do Visual Basic 6.0 SP6
Para obter o Windows XP SP2, visite o seguinte site do Microsoft Knowledge Base:
http://support.microsoft.com/default.aspx?scid=fh;EN-US;windowsxpsp2
Se você não pode instalar o Windows XP SP2, você pode obter a correção do Windows XP como um hotfix. Para obter informações adicionais, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
843524CORRECÇÃO: Lado a lado COM DLL módulo manifesto para controles ActiveX do Visual Basic 6.0 é substituído pelo registro no Windows XP

Mais Informações

Para ativar essa correção, você deve adicionar campos para os arquivos .manifest. The following is a sample .manifest file:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
	<assemblyIdentity type="win32" name="control.ocx" version="1.0.0.0" processorArchitecture="x86"/>
	<file name="control.ocx">
		<comClass description="Sub control" clsid="{76548630-0CC8-48E4-B471-A9001865AE65}" 
			miscStatus="recomposeonresize,cantlinkinside,insideout,activatewhenvisible,setclientsitefirst"
			progid="Control.TextBox" threadingModel="Apartment"
			tlbid="{8A1ADF05-8164-4D5B-9267-FA74E601D826}"/>
		<typelib tlbid="{8A1ADF05-8164-4D5B-9267-FA74E601D826}" version="1.0" helpdir=""/>
	</file>
</assembly>
Observe que o atributo miscStatus foi adicionado. Agora, cinco novos atributos estão disponíveis no elemento assembly ou no elemento comClass para representar os vários valores DVASPECT que estão disponíveis:
Recolher esta tabelaExpandir esta tabela
AtributoObservação
miscStatus Os sinalizadores de status padrão que são obtidos quando você passa 0 para o argumento dwAspect para a API OleRegGetMiscStatus
miscStatusIcon Mapas para DVASPECT_ICON
miscStatusThumbnail Mapas para DVASPECT_THUMBNAIL
miscStatusDocPrint Mapas para DVASPECT_CONTENT
miscStatusContent Mapas para DVASPECT_CONTENT
Para cada aspecto, o conjunto de sinalizadores a seguir pode ser especificado como uma lista separada por vírgulas. Não use caracteres de espaço ("") mas os sinalizadores podem ser caso misto. Esses elementos são tirados da enumeração de sinalizador OLEMISC.
Recolher esta tabelaExpandir esta tabela
Recomposeonresize Onlyiconic Insertnotreplace
EstáticoCantlinkinsideCanlinkbyole1
IslinkobjectInsideoutActivatewhenvisible
RenderingisdeviceindependentInvisibleatruntimeAlwaysrun
ActslikebuttonActslikelabelNouiactivate
AlignableSimpleframeSetclientsitefirst
ImemodeIgnoreactivatewhenvisibleWantstomenumerge
Supportsmultilevelundo
Observe que também deverá usar o atributo tlbid no elemento assembly ou no elemento comClass para indicar qual biblioteca de tipos a classe COM proveniente de para o runtime para resolvê-lo corretamente.

Situação

A Microsoft confirmou que este é um problema nos produtos da Microsoft listados na seção "Aplica-se a".

Propriedades

ID do artigo: 828629 - Última revisão: terça-feira, 25 de outubro de 2005 - Revisão: 1.1
A informação contida neste artigo aplica-se a:
  • Microsoft Visual Basic 6.0 Enterprise Edition Service Pack 5
  • Microsoft Visual Basic 6.0 Learning Edition
  • Microsoft Visual Basic Professional Edition for Windows 6.0 SP5
  • Microsoft Windows XP Professional SP1
  • Microsoft Windows XP Professional SP1a
Palavras-chave: 
kbmt kbhotfixserver kbqfe kbqfe kbwinxppresp2fix kbfix kbbug KB828629 KbMtpt
Traduçã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: 828629

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com