Symptômes
Prenons l’exemple du scénario suivant :
-
Vous avez un projet Visual C++ 2010. Le code source du projet a une structure ou une classe qui est supérieure à 64 octets.
-
Vous générez le projet pour une plate-forme x64, et que vous utilisez l’option de compilateur/O2 .
-
Vous exécutez l’application.
Dans ce scénario, une violation d’accès se produit et l’application se bloque.
Cause
Ce problème se produit car le compilateur basée sur les x64 de Visual Studio 2010 optimise le code en ajustant l’alignement de la répartition des données à partir de 64 octets à 16 octets. Par conséquent, un problème de mémoire se produit pour les objets qui dépassent 64 octets.
Résolution
Informations sur le correctif logiciel
Un correctif pris en charge est disponible auprès de Microsoft. Toutefois, ce correctif vise à corriger uniquement le problème décrit dans cet article. Appliquez ce correctif uniquement aux systèmes rencontrant ce problème spécifique. Ce correctif va peut-être subir des tests supplémentaires. Par conséquent, si vous n'êtes pas sérieusement concerné par ce problème, nous vous recommandons d'attendre la prochaine mise à jour logicielle qui contiendra ce correctif. Pour télécharger ce correctif depuis MSDN Code Gallery, visitez le site Web Microsoft suivant :
http://code.msdn.microsoft.com/KB2280741Remarque MSDN Code Gallery affiche les langues pour lesquelles ce correctif est disponible. Si vous ne voyez pas votre langue, c'est certainement dû au fait que la page de ressource Code Gallery n'existe pas dans cette langue. Remarque Si des problèmes supplémentaires se produisent ou si des procédures de dépannage sont nécessaires, vous devrez peut-être formuler une demande de service distincte. Les coûts habituels du support technique s'appliqueront aux questions et problèmes qui ne relèvent pas de ce correctif logiciel. Pour une liste complète des numéros de téléphone du service clientèle de Microsoft ou pour créer une demande de service distincte, visitez le site Web Microsoft suivant :
http://support.microsoft.com/contactus/?ws=supportVous pouvez également télécharger ce correctif logiciel en visitant le site Web Microsoft suivant :
https://connect.microsoft.com/VisualStudio/Downloads/DownloadDetails.aspx?DownloadID=31433
Conditions préalables
Pour appliquer ce correctif, vous devez disposer de Visual Studio 2010 est installé.
Nécessité de redémarrer
Vous n’êtes pas obligé de redémarrer l’ordinateur après avoir appliqué le correctif.
Informations sur le remplacement de correctif logiciel
Ce correctif logiciel n'en remplace pas d'autre.
Informations sur les fichiers
La version anglaise de ce correctif dispose des attributs de fichier (ou version ultérieure) répertoriés dans le tableau suivant. Les date et heure de création de ces fichiers sont exprimées en temps universel coordonné (UTC). Lorsque vous affichez les informations des fichiers, les données 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 du fichier |
Version du fichier |
Taille du fichier |
Date |
Heure |
Plateforme |
---|---|---|---|---|---|
C2.dll |
16.0.30319.345 |
2,510,144 |
01-Aug-2010 |
23:42 |
x86 |
C2.dll |
16.0.30319.345 |
2,588,480 |
01-Aug-2010 |
23:42 |
x86 |
C2.dll |
16.0.30319.345 |
2,630,976 |
01-Aug-2010 |
23:42 |
x86 |
C2.dll |
16.0.30319.345 |
2,977,088 |
01-Aug-2010 |
23:42 |
x64 |
C2.dll |
16.0.30319.345 |
7,351,616 |
01-Aug-2010 |
23:42 |
IA-64 |
Solution de contournement
Pour contourner ce problème, n’utilisez pas l’option de compilateur/O2 lorsque vous générez le projet.
Statut
Microsoft a confirmé l'existence de ce problème dans les produits Microsoft figurant dans la liste des produits concernés par cet article.