CORRECÇÃO: O Windows side-by-side execução não é suportada para controlos ActiveX do Visual Basic 6.0

Traduções de Artigos Traduções de Artigos
Artigo: 828629 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Sintomas

Com o Microsoft Windows XP e versões posteriores, pode executar módulos DLL Microsoft Component Object Model (COM) em modo lado a lado (SxS). Com SxS, diferentes versões de uma DLL COM coexistir no mesmo ambiente de computador sem conflitos. Este comportamento ocorre utilizando os ficheiros .manifest que especificam como um programa pode ligar a uma DLL COM específica. Os controlos ActiveX do Microsoft Visual Basic 6.0 são essencialmente DLL COM módulos com extensões de nome de ficheiro .ocx. Se tentar configurar estes módulos para operação SxS no Windows XP, receberá a seguinte mensagem de erro:

Runtime Error '336' componente incorrectamente registado.

Causa

Este problema ocorre porque o Windows e do Visual Basic tempos de execução não suportam configurar execução de SxS de controlos ActiveX do Visual Basic 6.0.

Resolução

Para resolver este problema totalmente tem de ter ambos os seguintes procedimentos:
  • A versão runtime do Visual Basic incluída 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 de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
290887O VBRun60sp6.exe instala ficheiros de tempo de execução do Visual Basic 6.0 SP6
Para obter o Windows XP SP2, visite o seguinte site da Web da base de dados de conhecimento da Microsoft:
http://support.microsoft.com/default.aspx?scid=fh;EN-US;windowsxpsp2
Se não conseguir instalar o Windows XP SP2, pode obter a correcção do Windows XP como uma correcção. Para obter informações adicionais, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
843524CORRECÇÃO: O lado a lado COM DLL módulo manifesto para controlos de ActiveX do Visual Basic 6.0 é substituído pelo registo do Windows XP

Mais Informação

Para activar esta correcção, tem de adicionar campos para os ficheiros .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>
Repare que o atributo miscStatus foi adicionado. Agora cinco novos atributos estão disponíveis no elemento de montagem ou no elemento comClass para representar vários valores DVASPECT que estão disponíveis:
Reduzir esta tabelaExpandir esta tabela
AtributoNota
miscStatus Os sinalizadores de estado de predefinição são obtidos quando passar 0 para o argumento dwAspect para a API OleRegGetMiscStatus
miscStatusIcon Mapeia para DVASPECT_ICON
miscStatusThumbnail Mapeia para DVASPECT_THUMBNAIL
miscStatusDocPrint Mapeia para DVASPECT_CONTENT
miscStatusContent Mapeia para DVASPECT_CONTENT
Para cada aspecto, conjunto de sinalizadores seguinte pode ser especificado como uma lista separada por vírgulas. Não utilize caracteres de espaços ("") mas os sinalizadores podem ser misto maiúsculas e minúsculas. Estes elementos são retirados da enumeração de sinalizador OLEMISC.
Reduzir esta tabelaExpandir esta tabela
Recomposeonresize Onlyiconic Insertnotreplace
EstáticoCantlinkinsideCanlinkbyole1
IslinkobjectInsideoutActivatewhenvisible
RenderingisdeviceindependentInvisibleatruntimeAlwaysrun
ActslikebuttonActslikelabelNouiactivate
AlignableSimpleframeSetclientsitefirst
ImemodeIgnoreactivatewhenvisibleWantstomenumerge
Supportsmultilevelundo
Repare que também deve utilizar o atributo tlbid o elemento de assemblagem ou num elemento comClass para indicar que biblioteca de tipos a classe COM provém para o tempo de execução resolver correctamente.

Ponto Da Situação

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

Propriedades

Artigo: 828629 - Última revisão: 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 revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes 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