La clase base vacía o el operador de asignación de estructura pueden dañar los datos

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): 322127
Este artículo se ha archivado. Se ofrece "tal cual" y no se volverá a actualizar.
Síntomas
Cuando se utiliza un operador de asignación generada por compilador para una clase base vacía o una estructura, el código que genera el compilador puede dañar los datos o escribir más allá del final de la clase o la estructura.
Causa
Este problema se produce debido a un error en el compilador de Visual C++.
Solución
Ahora hay disponible un hotfix para el que Microsoft proporciona soporte técnico, pero que sólo se diseñó para corregir el problema descrito en este artículo. Aplíquelo sólo a sistemas que experimenten este problema específico. Este hotfix puede ser sometido a comprobaciones adicionales. Por lo tanto, si no se ve muy afectado por este problema, recomendamos que espere al próximo service pack de Microsoft Visual Studio 6.0 que contenga este hotfix.

Para resolver este problema inmediatamente, póngase en contacto con los Servicios de soporte técnico de Microsoft con el fin de obtener la revisión. Para obtener una lista completa de los números de teléfono de servicios de soporte de técnico de Microsoft e información acerca de los costos de soporte, visite el siguiente sitio Web: Nota : en casos especiales, los que normalmente se incurre llamadas de soporte técnico pueden cancelarse si un profesional de soporte técnico de Microsoft determina que una actualización específica resolverá el problema. Los costos habituales de soporte se aplicarán a las preguntas de soporte técnico adicionales y problemas que no guarden relación con la actualización en cuestión.

La versión en inglés de esta revisión tiene los atributos de archivo enumerados en la siguiente tabla u otros posteriores. Las fechas y horas de estos archivos aparecen en la hora universal coordinada (UTC). La información de los archivos se convertirá a la hora local cuando la vea. Para averiguar la diferencia entre hora UTC y la hora local, utilice la ficha zona horaria de la herramienta fecha y hora en el panel de control.
   Date         Time   Version         Size       File name   --------------------------------------------------------------   14-May-2002  10:40  12.0.9586.0     1,224,755  C1xx.dll				

Estado
Microsoft ha confirmado que se trata de un problema de los productos de Microsoft enumerados en la sección "La información de este artículo se refiere a:" de este artículo.
Más información
Puede utilizar el siguiente código de ejemplo para demostrar el problema. Observe que los valores de 'a.m_n' y 'b.m_n' difieren.
#include <stdio.h>class CEmpty{public:	CEmpty() throw()	{	}	CEmpty( const CEmpty& ) throw()	{	}	~CEmpty() throw()	{	}	CEmpty get() const throw()	{		return( *this );	}};class CDerived :	public CEmpty  // Empty base class {public:	int m_n;	CDerived& operator=( const CDerived& src ) throw()	{		m_n = src.m_n;                // Overwrites low byte of m_n.		CEmpty::operator=( src.get() ); 		return( *this );	}	};int main( int, char** ){	CDerived a;	a.m_n = 0x01020304;	CDerived b;	b = a;	printf( "0x%08x\n", b.m_n );	return( 0 );}				

Advertencia: este artículo se tradujo automáticamente

Propiedades

Id. de artículo: 322127 - Última revisión: 01/07/2015 15:27:43 - Revisión: 1.3

Microsoft Visual C++ 6.0 Service Pack 5

  • kbnosurvey kbarchive kbmt kbhotfixserver kbqfe kbbug kbfix kbqfe KB322127 KbMtes
Comentarios