REVISIÓN: Un desbordamiento de pila se produce cuando contenedores de controles ActiveX MFC entrar en estado de una recursividad infinita en C++

Seleccione idioma Seleccione idioma
Id. de artículo: 192942 - Ver los productos a los que se aplica este artículo
Este artículo se ha archivado. Se ofrece "tal cual" y no se volverá a actualizar.
Expandir todo | Contraer todo

Síntomas

En determinadas circunstancias, contenedores de controles ActiveX MFC entran en estado de una recursividad infinita que finalmente conduce a un desbordamiento de pila. Los síntomas de esto son cuando cambia la posición de un sitio de control, el programa se aparentemente se bloquee y finalmente producir un desbordamiento de pila (0xC00000FD) excepción del sistema operativo. El seguimiento de pila tiene este aspecto:
   COleControlSite::MoveWindow
   COleControl::XOleInPlaceObject::SetObjectRects
   COleControl::OnSetObjectRects
   COleControlSite::MoveWindow
   ...
				

Causa

Cuando se cambia la posición del control de sitio, el código de contenedor cambia la posición de la ventana reflectora (si existe) y los rectángulos de seguimiento (si está presente). El código de contenedor de control finalmente llama a COleControl::XOleInPlaceObject::SetObjectRects. (Vea CTLINPLC.CPP en el origen de MFC). SetObjectRects() realiza una llamada a GetOuterWindow(), que devuelve la ventana reflectora si está presente. Si la variable de ventana reflector es NULL, a continuación, el mismo objeto de ventana se devuelve, MoveWindow a continuación, se llama utilizando el objeto de ventana devuelta. Esto hace que MoveWindow llamarse en Sí, lo que un bucle recursivo.

Solución

Una solución es copiar la versión de Visual C++ 5.0 de la Mfc42.dll (versión del archivo: 4.21.7303) al directorio particular del programa experimentando este problema. Esto hará que el sistema utilizar la versión anterior de MFC, en lugar de Mfc42.dll en el que se encuentra en el directorio del sistema Windows.

Estado

Microsoft ha confirmado que trata de un error en Microsoft productos enumeran en este artículo. Este error se ha solucionado en Visual Studio 6.0 Service Pack 1.

Para obtener este service pack, visite el siguiente sitio Web de Microsoft:
http://msdn2.microsoft.com/en-us/vstudio/Aa718362.aspx
Para obtener más información acerca de Visual Studio 6.0 Service Pack 1, haga clic en los números de artículo siguientes para verlos en Microsoft Knowledge Base:
193009Léame de Visual Studio 6.0 Service Pack 1
194022Service Pack de Visual Studio 6.0: qué son, dónde están y por qué son necesarios
194295Cómo saber que está instalado un service pack de Visual Studio

Más información

Este error se ha encontrado en 8 de WordPerfect que se suministra como parte de Corel Office Suite 8. Este error sólo ocurre con la versión de Visual C++ 6.0 de la Mfc42.dll.

Propiedades

Id. de artículo: 192942 - Última revisión: sábado, 22 de febrero de 2014 - Versión: 5.2
La información de este artículo se refiere a:
  • Microsoft Foundation Class Library 4.2 sobre las siguientes plataformas
    • Microsoft Visual C++ 6.0 Enterprise
    • Microsoft Visual C++ 6.0 Professional
    • Microsoft Visual C++, 32-bit Learning Edition 6.0
Palabras clave: 
kbnosurvey kbarchive kbmt kbqfe kbbug kbfix kbnoupdate kbvc600sp1fix kbvs600sp1fix KB192942 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 192942

Enviar comentarios

 

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