Symptômes
Symptôme 1
Lorsque vous compilez un projet Microsoft Visual C++ qui a une déclaration d’énumération avec un décalage spécifique, vous pouvez recevoir une erreur C2511, C2556 ou C2371.
Cause 1
Ce problème se produit parce que le compilateur traite de façon incorrecte code déclaration d’énumération qui se produit à la fin d’une mémoire tampon de fichier [à l’offset de fichier (4096 * n) -1].
Symptôme 2
Vous compilez un projet Visual C++ qui a un appel de fonction virtuelle qui renvoie un objet et qui lie la valeur renvoyée à une référence. Vous avez également l’option /clr est activée. Dans ce cas, vous pouvez recevoir une exception de violation d’accès au moment de l’exécution.
Cause 2
Ce problème se produit car l’extension de la durée de vie implicite d’une valeur temporaire qui est liée à une référence const ne fonctionne pas si les conditions suivantes sont remplies :
-
Le projet est compilé sous /clr.
-
La valeur temporaire est la valeur retournée d’un appel de fonction virtuelle ou d’un appel de fonction via un pointeur fonction.
Résolution
Informations sur le correctif
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.
Si le correctif est disponible pour le téléchargement, il existe une section « Téléchargement de correctif logiciel disponible » au début de cet article de la Base de connaissances. Si cette section n’apparaît pas, soumettez une demande au Service Clients et Support de Microsoft pour obtenir le correctif.
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 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=supportRemarque Le formulaire « Téléchargement de correctif logiciel disponible » affiche les langues pour lesquelles le correctif est disponible. Si vous ne voyez pas votre langue, c'est parce qu'il n'y a pas de correctif disponible pour cette langue.
Conditions préalables
Pour appliquer ce correctif, vous devez disposer de Microsoft Visual Studio 2012 mise à jour 4 est installé.
Nécessite un redémarrage
Vous devrez peut-être 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 2012 avant d’installer le correctif.
État
Microsoft a confirmé l'existence de ce problème dans les produits Microsoft répertoriés dans la section « S'applique à ».