CORRECÇÃO: Uma sobrecarga de pilha ocorre quando contentores de controlo ActiveX MFC entram num estado de recursividade infinita no Visual C++

Traduções de Artigos Traduções de Artigos
Artigo: 192942 - Ver produtos para os quais este artigo se aplica.
Este artigo foi arquivado. Este artigo é oferecido "tal como está" e deixará de ser actualizado.
Expandir tudo | Reduzir tudo

Sintomas

Em determinadas circunstâncias, contentores de controlo ActiveX MFC irão entrar num estado de recursividade infinita que eventualmente conduz a uma sobrecarga de pilha. Os sintomas deste são quando altera a posição de um site de controlo, o programa aparentemente deixar de responder e, eventualmente, produzir uma sobrecarga de pilha (0xC00000FD) excepção do sistema operativo. O rastreio da pilha tem este aspecto:
   COleControlSite::MoveWindow
   COleControl::XOleInPlaceObject::SetObjectRects
   COleControl::OnSetObjectRects
   COleControlSite::MoveWindow
   ...
				

Causa

Quando altera a posição do site de controlo, o código de contentor altera a posição da janela do reflector (se existir) e os rectângulos controlador (se presente). O código de contentor de controlo de chamadas eventualmente COleControl::XOleInPlaceObject::SetObjectRects. (Consulte CTLINPLC.CPP na origem de MFC.) SetObjectRects() efectua uma chamada para GetOuterWindow(), que devolve a janela reflector se existir. Se a variável de janela reflector for NULL, em seguida, o mesmo objecto de janela é devolvido, MoveWindow é chamado, em seguida, utilizando o objecto devolvido de janela. Isto faz com que MoveWindow ser chamado sobre si próprio, resultando num loop recursiva.

Resolução

Uma solução é copiar a versão do MFC42.DLL Visual C++ 5.0 (versão de ficheiro: 4.21.7303) para o directório raiz do programa com este problema. Isto fará com que o programa utilize a versão mais antiga do MFC, em vez de MFC42.DLL localizado no directório do sistema Windows.

Ponto Da Situação

Microsoft confirmou que este seja um erro no Microsoft produtos listados neste artigo. Este erro foi corrigido no Visual Studio 6.0 Service Pack 1.

Para obter este service pack, visite o seguinte Web site da Microsoft:
http://msdn2.microsoft.com/en-us/vstudio/Aa718362.aspx
Para obter mais informações sobre o Visual Studio 6.0 Service Pack 1, clique números de artigo que se seguem para visualizar os artigos na base de dados de conhecimento da Microsoft:
193009Visual Studio 6.0 Service Pack 1 Leia-me
194022Visual Studio 6.0 service packs, o que, em que, por que razão
194295Como saber que um Visual Studio service pack está instalado

Mais Informação

Este erro foi encontrado em 8 de WordPerfect fornecido como parte da Corel do conjunto de aplicações 8 do Office. Este erro ocorre apenas com a versão do Visual C++ 6.0 do MFC42.DLL.

Propriedades

Artigo: 192942 - Última revisão: 23 de fevereiro de 2014 - Revisão: 5.2
A informação contida neste artigo aplica-se a:
  • Microsoft Foundation Class Library 4.2 nas seguintes plataformas
    • Microsoft Visual C++ 6.0 Enterprise Edition
    • Microsoft Visual C++ 6.0 Professional Edition
    • Microsoft Visual C++, 32-bit Learning Edition 6.0
Palavras-chave: 
kbnosurvey kbarchive kbmt kbqfe kbbug kbfix kbnoupdate kbvc600sp1fix kbvs600sp1fix KB192942 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: 192942

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