Symptômes
Considérez le scénario suivant :
-
Vous développez une application Microsoft Visual C++ 2010 qui utilise les membres de champ de bits dans un struct dans Microsoft Visual Studio 2010.
-
Vous activez une option d’optimisation du compilateur pour l’application, puis vous générez l’application.
-
Vous exécutez l’application.
Dans ce scénario, le code machine incorrect peut être généré pour certaines opérations de membre de champ de bits dans le struct.
Résolution
Informations sur le correctif
Un correctif pris en charge est désormais disponible auprès de Microsoft. Toutefois, il est conçu pour résoudre uniquement le problème décrit dans cet article. Il s’applique uniquement aux systèmes rencontrant ce problème spécifique.
Pour résoudre ce problème, contactez les Services de Support technique Microsoft pour obtenir le correctif. Pour obtenir une liste complète des numéros de téléphone des Services de Support technique Microsoft et des informations relatives aux frais de support technique, visitez le site Web Microsoft suivant :
http://support.microsoft.com/contactus/?ws=supportRemarque Dans des cas particuliers, des frais généralement encourus pour les appels au support technique peuvent être annulés si un technicien du support technique Microsoft détermine qu'une mise à jour spécifique peut résoudre votre problème. Les coûts habituels du support technique s’appliqueront aux autres questions et problèmes qui ne relèvent pas de la mise à jour spécifique en question.
Conditions préalables
Pour appliquer ce correctif, vous devez disposer de Microsoft Visual Studio 2010 SP1 est installé.
Nécessite un redémarrage
Vous n’êtes pas obligé de redémarrer l’ordinateur après avoir installé le correctif, si les fichiers affectés ne sont pas utilisés au moment de l’installation. Nous vous recommandons de fermer tous les composants Visual Studio 2010 avant d’installer le correctif.
La version internationale de ce correctif possède les attributs de fichier (ou ultérieure) répertoriés dans le tableau suivant. Les dates et heures de ces fichiers sont répertoriées en temps universel coordonné (UTC). Lorsque vous affichez les informations de fichier, elles sont converties en heure locale. Pour trouver la différence entre l’UTC et l’heure locale, utilisez l’onglet fuseau horaire dans l’élément de Date et heure dans le panneau de configuration.
Nom de fichier |
Version de fichier |
Taille du fichier |
Date |
Heure |
Plateforme |
Chemin d’accès |
---|---|---|---|---|---|---|
C2.dll |
16.0.40219.449 |
2,606,728 |
18-Apr-2013 |
18:09 |
x86 |
Microsoft Visual Studio 10.0\VC\bin |
C2.dll |
16.0.40219.449 |
2,493,576 |
19-Apr-2013 |
21:19 |
x86 |
Microsoft Visual Studio 10.0\VC\bin\x86_amd64 |
C2.dll |
16.0.40219.449 |
2,593,928 |
19-Apr-2013 |
21:19 |
x86 |
Microsoft Visual Studio 10.0\VC\bin\x86_ia64 |
C2.dll |
16.0.40219.449 |
2,960,008 |
19-Apr-2013 |
21:19 |
x64 |
Microsoft Visual Studio 10.0\VC\bin\amd64 |
État
Microsoft a confirmé l'existence de ce problème dans les produits Microsoft répertoriés dans la section « S'applique à ».
Solution de contournement
Pour contourner ce problème, appliquez l’une des méthodes suivantes :
-
Utilisez l’option de compilateur d’optimisationOd /pour désactiver l’optimisation.
-
Le pragma optimize permet d’activer ou de désactiver l’optimisation sur une base fonction par fonction.
-
Mise à niveau vers Microsoft Visual Studio 2012.
Références
Pour plus d’informations sur le pragma optimize , accédez au site Web MSDN suivant :
Informations générales sur le pragma optimizePour plus d’informations sur les options d’optimisation /O , accédez au site Web MSDN suivant :
Informations générales sur les Options /O (optimiser le code)