REVISIÓN: "IF" condición no funciona correctamente al ejecutar una aplicación de Visual C++ desarrollado en Visual Studio 2010 SP1

Seleccione idioma Seleccione idioma
Id. de artículo: 2719783
Expandir todo | Contraer todo

En esta página

Síntomas

Tenga en cuenta la situación siguiente:
  • Utilice Microsoft Visual Studio 2010 Service Pack 1 (SP1) para desarrollar una aplicación de Visual C++.
  • El código fuente de la aplicación cumple las condiciones siguientes:
    • El código fuente contiene una instrucción IF en un bucle anidado.
    • La condición IF contiene una comprobación que determine si una variable de entero con signo es negativa y una comprobación que determine si la variable de entero con signo es mayor que otro número.
    • El código que se encuentra fuera de la condición IF tiene una función lineal que utiliza la variable con signo.
  • Compile la aplicación mediante el uso de Visual Studio 2010 o la línea de comandos.

    Nota Compile la aplicación mientras esté habilitada una opción de compilación.
  • Ejecute la aplicación.
En este escenario, la instrucción IF no funciona correctamente.

Solución

Información de la revisión

Ahora hay un hotfix compatible de Microsoft. Sin embargo, se diseñó para corregir el problema descrito en este artículo. Aplíquela sólo a sistemas que experimenten este problema específico. Esta revisión se efectuarán pruebas adicionales. Por lo tanto, si no se ve muy afectado por este problema, se recomienda que espere la próxima actualización de software que contenga este hotfix.

Para resolver este problema inmediatamente, póngase en contacto con servicios de soporte técnico de Microsoft para obtener la revisión. Para obtener una lista completa de los números de teléfono de servicios de soporte técnico de Microsoft e información acerca de los costos de soporte técnico, visite el siguiente sitio Web de Microsoft:
http://support.Microsoft.com/contactus/?ws=support
Nota En casos especiales, los costos derivados normalmente de llamadas al soporte técnico pueden cancelarse si un profesional de soporte técnico de Microsoft determina que una actualización específica resolverá el problema. Se aplicarán los costos de soporte técnico usuales a las cuestiones y problemas que no guarden relación con la actualización en cuestión.

Requisitos previos

Para aplicar esta revisión, debe tener instalado Visual Studio 2010 SP1.

Requisito de reinicio

No es necesario reiniciar el equipo después de instalar la revisión si no se usan los archivos afectados durante el proceso de instalación. Se recomienda que cierre todos los componentes relacionados con Visual Studio 2010 antes de instalar la revisión.

Información de sustitución de la revisión

Esta revisión no sustituye a otras.

Información de archivo

La versión en inglés de esta revisión tiene los atributos de archivo (u otros posteriores) que se enumeran en la tabla siguiente. Las fechas y horas de estos archivos se muestran en hora Universal coordinada (UTC). Cuando vea la información de archivo, se convierte en hora local. Para ver la diferencia entre la hora UTC y la hora local, utilice el Zona horaria ficha en la Fecha y hora elemento de Panel de Control.
Para todas las versiones compatibles de Visual Studio 2010
Contraer esta tablaAmpliar esta tabla
Nombre de archivoVersión del archivoTamaño de archivoFechaPlataforma
C2.dll16.0.40219.4042,608,19213-Dic-2012x 86
C2.dll16.0.40219.4042,494,52813-Dic-2012x 86
C2.dll16.0.40219.4042,593,34413-Dic-2012x 86
C2.dll16.0.40219.4042,962,49613-Dic-2012x 64

Estado

Microsoft ha confirmado que se trata de un problema de los productos de Microsoft que se enumeran en la sección "Se refiere a:".

Más información

Para obtener más información acerca de las opciones de Visual C++ /o/o , visite el sitio de Web MSDN siguiente:
Información general acerca de opciones/o:
Para reproducir este problema, ejecute una aplicación de C++ que utiliza el código siguiente:
#include "stdafx.h"
 
int main()
{
        for( int i = -1; i <= 3; i++ ) 
        {
               for( int j = -1; j <= 3; j++ ) 
               {
                      if (i >= 0 && i < 3 && j >= 0 && j < 3)
                      {
                            printf("%d\n", i * 3 + j);
                      }
               }
        }
        return 0;
}
Después de ejecutar la aplicación, recibirá el siguiente resultado:
-3
-2
-1
0
1
2
3
4
5
6
7
8
Sin embargo, que espera los siguientes resultados en esta situación:
0
1
2
3
4
5
6
7
8

Propiedades

Id. de artículo: 2719783 - Última revisión: jueves, 10 de enero de 2013 - Versión: 4.0
Palabras clave: 
kbqfe kbfix kbexpertiseadvanced kbhotfixserver kbsurveynew kbmt KB2719783 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): 2719783

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