CORRECÇÃO: Um estouro de pilha ocorre quando recipientes de controle ActiveX MFC insere um estado de recursão infinita no Visual C++

Traduções deste artigo Traduções deste artigo
ID do artigo: 192942 - Exibir os produtos aos quais esse artigo se aplica.
Este artigo foi arquivado. É oferecido "como está" e não será mais atualizado.
Expandir tudo | Recolher tudo

Sintomas

Em determinadas circunstâncias, recipientes de controle ActiveX MFC inserirá um estado de recursão infinita, que pode leva a um estouro de pilha. Os sintomas são quando a posição de um site do controle é alterada, o programa será aparentemente travar e, eventualmente, produzir um estouro de pilha (0xC00000FD) exceção do sistema operacional. O rastreamento de pilha tem esta aparência:
   COleControlSite::MoveWindow
   COleControl::XOleInPlaceObject::SetObjectRects
   COleControl::OnSetObjectRects
   COleControlSite::MoveWindow
   ...
				

Causa

Quando a posição do site do controle é alterada, o código do contêiner altera a posição da janela do reflector (se presente) e os retângulos controlador (se presente). O código de recipiente de controle, eventualmente, chama COleControl::XOleInPlaceObject::SetObjectRects. (Consulte CTLINPLC.CPP na fonte de MFC). SetObjectRects() faz uma chamada para GetOuterWindow(), que retorna a janela do reflector se presente. Se a variável de janela reflector for NULL, o mesmo objeto de janela será retornado, MoveWindow é então chamado usando o objeto window retornado. Isso faz com que MoveWindow ser chamado em si, resultando em um loop recursivo.

Resolução

Uma solução alternativa é copiar a versão do Mfc42.dll Visual C++ 5.0 (versão do arquivo: 4.21.7303) para o diretório base do programa tendo esse problema. Isso fará com que o programa para usar a versão mais antiga do MFC, em vez de Mfc42.dll que está na pasta do sistema Windows.

Situação

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

Para obter este service pack, visite o seguinte site:
http://msdn2.microsoft.com/en-us/vstudio/Aa718362.aspx
Para obter mais informações sobre o Visual Studio 6.0 Service Pack 1, clique nos números abaixo para ler os artigos na Base de dados de Conhecimento da Microsoft:
193009Leiame do Visual Studio 6.0 Service Pack 1
194022O Visual Studio 6.0 service packs, o que, em que, por que
194295Como saber se um service pack do Visual Studio está instalado

Mais Informações

Esse bug foi encontrada no WordPerfect 8 que é fornecido como parte do Corel Office Suite 8. Este erro ocorre apenas com a versão do Visual C++ 6.0 do Mfc42.dll.

Propriedades

ID do artigo: 192942 - Última revisão: domingo, 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 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: 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