Se connecter avec Microsoft
S'identifier ou créer un compte.
Bonjour,
Sélectionnez un autre compte.
Vous avez plusieurs comptes
Choisissez le compte avec lequel vous voulez vous connecter.

Symptômes

Lorsque vous générez un programme à l’aide de Microsoft Visual C++ 2013, le programme se bloque et vous recevez une exception « Instruction illégale ». Cela se produit parce que certaines fonctions de bibliothèque de mathématiques à virgule flottante dans le Runtime de Visual C++ 2013 x64 C (CRT) ne pas correctement vérifient si certaines instructions AVX et FMA3 sont disponibles avant que les fonctions de tentent de les utiliser. Si les instructions ne sont pas disponibles, les appels à ces fonctions provoquent une exception d’instruction non conforme (0xc000001d). Fonctions affectées incluent le journal de, log10, pow et des autres.

Ce problème est plus susceptible de se produire dans les scénarios suivants :

  • Sur une ancienne version du système d’exploitation Windows qui ne prend pas en charge les AVX état l’enregistrement (par exemple, Windows Vista) si elle est utilisée sur un ordinateur prenant en charge le jeu d’instructions AVX

  • Si l’enregistrement d’état AVX est explicitement désactivée dans la configuration de démarrage du système d’exploitation

  • Dans l’environnement de préinstallation Windows (Windows PE)

    Remarque Windows PE ne gère pas d’enregistrement d’état AVX.


Ce problème a été signalé sur Microsoft Connect :

x64 log() fonction utilise les instructions AVX de vpsrlq quel que soit le système d’exploitation (de sorte qu’il se bloque sur Vista x64)

Visual Studio RTM de 2013 : Bogue de génération pour obtenir des instructions AVX2 de code C++ x64

Cause

Ce problème se produit car le Runtime Visual C++ 2013 x64 C ne vérifie pas si le système d’exploitation prend en charge l’enregistrement d’état AVX avant d’essayer d’exécuter des instructions AVX ou FMA3.

Résolution

Si tous les fichiers binaires C++ concernés qui sont générés à l’aide de Visual C++ 2013 utilisent la DLL d’exécution C (msvcr120.dll), installez la mise à jour redistribuable Microsoft Visual C++ 2013 – 12.0.40660.0 ou une version ultérieure.

Si vos fichiers binaires de C++ affectés de manière statique le Runtime C de Visual C++ 2013, vous devez mettre à jour votre installation de Visual Studio 2013 par l’installation du correctif 3174417 et de reconstruction et de redéployer les fichiers binaires concernés.









Remarque Ce problème n’affecte pas les versions antérieures de Visual C++ C Runtime (Visual C++ 2012 et les versions antérieures). Le problème a été résolu avant la version initiale de la CRT universel qui est utilisé par Visual C++ 2015.

Centre de téléchargement Microsoft

Pour mettre à jour le Runtime liées statiquement C de 2013 Visual C++, le correctif 3174417 est publié sous la forme d’une mise à jour par téléchargement uniquement et n’est pas distribué par le biais de Windows Update. Il est disponible sur le site Web de Microsoft Download Center :

Download Télécharger le package maintenant.

Mettre à jour dynamiquement lié DLL Visual C++ 2013 C Runtime, une mise à jour redistribuable est disponible. Pour plus d’informations, consultez l’article suivant de la Base de connaissances Microsoft :

Mise à jour 3179560 pour Visual C++ 2013 et de Visual C++ Redistributable Package

Solution de contournement

Pour contourner ce problème, désactivez le FMA3 de la bibliothèque de mathématiques si vous êtes concerné par ce problème. Vous pouvez interroger si le système prend en charge les instructions AVX en appelant GetEnabledXStateFeatures et en désactivant les AVX le CRT explicitement en appelant _set_FMA3_enable(0).

Pour plus d’informations, consultez utilisation de contexte de XStatesur le site Web MSDN.

La fonction _set_FMA3_enable(0) est déclarée dans < math.h >, et il n’est disponible que lorsque vous générez pour x64. Ce problème affecte uniquement les x64 bibliothèques (.) Ainsi, la bibliothèque de mathématiques rétablir les implémentations non-FMA3.

Besoin d’aide ?

Vous voulez plus d’options ?

Explorez les avantages de l’abonnement, parcourez les cours de formation, découvrez comment sécuriser votre appareil, etc.

Les communautés vous permettent de poser des questions et d'y répondre, de donner vos commentaires et de bénéficier de l'avis d'experts aux connaissances approfondies.

Ces informations vous ont-elles été utiles ?

Dans quelle mesure êtes-vous satisfait(e) de la qualité de la langue ?
Qu’est-ce qui a affecté votre expérience ?
En cliquant sur Envoyer, vos commentaires seront utilisés pour améliorer les produits et services de Microsoft. Votre administrateur informatique sera en mesure de collecter ces données. Déclaration de confidentialité.

Nous vous remercions de vos commentaires.

×